StaticFancyText ändern

Plattformunabhängige GUIs mit wxWidgets.
Antworten
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

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
ntrunk
User
Beiträge: 83
Registriert: Sonntag 7. September 2008, 23:09
Wohnort: Buchen (Odenwald)

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?
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

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()
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

Lösung gefunden,

siehe Frage "Umlaute in StaticFancyText" im wx-Forum

Gruß Mathi
Antworten