Seite 1 von 1

Led Control, Resize Problem

Verfasst: Samstag 17. März 2007, 14:00
von Hand
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()

Verfasst: Samstag 17. März 2007, 15:51
von HWK
Genau, mit:

Code: Alles auswählen

evt.Skip()
MfG
HWK

Verfasst: Samstag 17. März 2007, 20:38
von Hand
merci, funtzt jetzt :)