Seite 1 von 1

StaticFancyText ändern

Verfasst: Montag 23. August 2010, 08:48
von mathi
hallo,

eigendlich dachte ich, dass ich mit:

Code: Alles auswählen

import  wx.lib.fancytext as fa

self.Ergebnis1 = fa.StaticFancyText(self, -1, 'test1',pos=(120,70))

self.Freeze() # Fensteraufbau sperren
self.Ergebnis1.SetLabel('anderer Text')
           
self.Thaw()
self.Layout() 
den Text "anderer Text" auf dem Panel lesen kann, dem ist abber nicht so, warum??
Es passiert einfach nichts, d.h. die Methode SetLabel() ist verfügbar. Wenn ich mit wx.StaticText arbeite funktioniert alles wie es soll...

Gruß Mathi


EDIT by Damaskus: ins WX Unterforum verschoben

Re: StaticFancyText ändern

Verfasst: Montag 23. August 2010, 09:00
von ntrunk
mathi hat geschrieben:[...]
den Text "anderer Text" auf dem Panel lesen kann, dem ist abber nicht so, warum??
Es passiert einfach nichts, d.h. die Methode SetLabel() ist verfügbar. Wenn ich mit wx.StaticText arbeite funktioniert alles wie es soll...

Gruß Mathi
Ich würde dir ja gerne helfen, aber

Code: Alles auswählen

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    self.Ergebnis1 = fa.StaticFancyText(self, -1, 'test1',pos=(120,70))
NameError: name 'self' is not defined
Damit man ein Problem nachvollziehen kann, ist es notwendig, die Rahmenbedingungen zu kennen. Poste bitte einen auf das Wesentliche reduzierten Code, der dein Problem verdeutlicht. (1)
(Mir geht es bei meinen Problemen oft so, dass sich bei einem Minimalbeispiel wie von selbst die Lösung präsentiert :wink: )
Norbert

(1) sollte das nicht ins wx-Unterforum?

Re: StaticFancyText ändern

Verfasst: Montag 23. August 2010, 09:38
von mathi
Unten mal der Code, ich habe gleich 2 Varianten zusammen gefügt, einmal Änderung direkt in
class ErgebnisPanel(wx.Panel)
und einmal in
class Test(wx.Frame)
ntrunk hat geschrieben:(1) sollte das nicht ins wx-Unterforum?
äääh, ja natürlich wäre es dort besser aufgehoben, sorry.

Code: Alles auswählen

# -*- coding: iso-8859-15 -*- 

import wx
import  wx.lib.fancytext as fa

#wx.SetDefaultPyEncoding("iso-8859-15") 
   

class ErgebnisPanel(wx.Panel): 
    def __init__(self, parent): 
        wx.Panel.__init__(self, parent,style=wx.TAB_TRAVERSAL | wx.BORDER_RAISED) 

        # Ausgabe
        Ergebnis = wx.StaticText(self, -1, ' Ergebnis: ',pos=(10,10))

        self.Ergebnis1 = fa.StaticFancyText(self, -1, 'test1',pos=(40,40))
        self.Freeze()
        self.Ergebnis1.SetLabel('anderer Text')
        self.Thaw()
        self.Layout()

class Test(wx.Frame): 
    
    def __init__(self, parent = None,id=-1, title = "testframe", size = wx.Size(200, 200)): 
        wx.Frame.__init__(self, parent,id, title, size = size)

        #MainPanel
        main_panel = wx.Panel(self,-1)         
        vbox = wx.BoxSizer(wx.VERTICAL) 
        main_panel.SetSizer(vbox)

        #Ergebnispanel
        self.ergebnis_panel=ErgebnisPanel(main_panel)
        vbox.Add(self.ergebnis_panel, 1, wx.EXPAND)
        self.Show()
        
        self.Freeze()
        self.ergebnis_panel.Ergebnis1.SetLabel('nochmal anderer Text')
        self.Thaw()
        self.Layout()
        

def main(): 
    """Main""" 
    app = wx.App() 
    f = Test() 
    f.Center() 
    f.Show() 
    app.MainLoop() 

if __name__ == "__main__": 
    main()

Re: StaticFancyText ändern

Verfasst: Montag 23. August 2010, 12:46
von mathi
Lösung gefunden,

siehe Frage "Umlaute in StaticFancyText" im wx-Forum

Gruß Mathi