Hi, I'm new to wxpython, and the following code is my first serious attempt:
#~ start code import wx class MyPanel(wx.Panel): def __init__(self, parent, id): wx.Panel.__init__(self, parent, id) self.parent = parent button = wx.Button(self, -1, "Refresh") button.SetPosition((100, 100)) button.SetFocus() self.Bind(wx.EVT_BUTTON, self.OnCloseMe, button) def OnCloseMe(self, event): self.parent.f_redraw(self) pass class MyFrame(wx.Frame): def __init__( self, parent, ID, title, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE ): wx.Frame.__init__(self, parent, ID, title, pos, size, style) def f_redraw(self, kill_window): kill_window.Destroy() MyPanel(self, -1) #~ self.SendSizeEvent() wxApp = wx.App() f = MyFrame(None, -1, "App Title") MyPanel(f, -1) f.Show() wxApp.MainLoop() #~ end code My problem is: when I press the "refresh" button, the new panel is painted only as a 20x20 pixels square on the top right side of the frame. If I resize the frame, the panel is repainted correctly (that's why I inserted the self.SendSizeEvent() line - commented above). Is there something I'm missing, or this is normal ? I'm using python 2.4.3 and wxpython 2.8.1.1 unicode, on WinXP SP2. Windows extensions are also installed. -- http://mail.python.org/mailman/listinfo/python-list