Led Control, Resize Problem

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Hand
User
Beiträge: 65
Registriert: Sonntag 28. Januar 2007, 14:28

Samstag 17. März 2007, 14:00

Hallo, habe ein Problem mit dem LED Control.

Habe das ganze in einen Sizer verpackt also 2 LED Controls untereinander
Wenn ich das Fenster verleinere / vergrößere ändern zwar die Sizer ihre
Größe aber die Led Controls werden nicht neu gezeichnet.

Wenn ich mit bind EVT_SIZE die LED Controls manuell Refreshe funktioniert der Sizer nicht mehr.

Muss ich den Size Event irgendwie an das System zurückgeben?

Code: Alles auswählen


import wx
import wx.gizmos

#------------------------------------------------------------------------------
# class myLed
#------------------------------------------------------------------------------
class myLed(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, -1)
        led = wx.gizmos.LEDNumberCtrl(self, -1, (-1,-1), (-1, -1))
        led.SetValue("0:1:23")
        self.Show()

#------------------------------------------------------------------------------
# class myFrame
#------------------------------------------------------------------------------
class myFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'TimeSync', (0,0), (500,500))

        self.led1 = wx.gizmos.LEDNumberCtrl(self, -1, (-1,-1), (-1, -1))
        self.led1.SetValue("123")
        self.led2 = wx.gizmos.LEDNumberCtrl(self, -1, (-1,-1), (-1, -1))
        self.led2.SetValue("123")

        self.sizer1 = wx.BoxSizer(wx.VERTICAL)
        self.sizer1.Add(self.led1, 1, wx.EXPAND)
        self.sizer1.Add(self.led2, 1, wx.EXPAND)

        self.SetSizer(self.sizer1)
#        self.Bind(wx.EVT_SIZE, self.__Resize)
        self.Show()

    def __Resize(self, evt):
        self.led1.Refresh()
        self.led2.Refresh()

#------------------------------------------------------------------------------
# class myApp
#------------------------------------------------------------------------------
class myApp(wx.App):
    def OnInit(self):
        frame = myFrame()
        frame.Show()
        return True

#------------------------------------------------------------------------------
# def main
#------------------------------------------------------------------------------
def main():
    app = myApp(0)
    app.MainLoop()
#------------------------------------------------------------------------------
if(__name__ == '__main__'):
    main()
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Samstag 17. März 2007, 15:51

Genau, mit:

Code: Alles auswählen

evt.Skip()
MfG
HWK
Hand
User
Beiträge: 65
Registriert: Sonntag 28. Januar 2007, 14:28

Samstag 17. März 2007, 20:38

merci, funtzt jetzt :)
Antworten