In my wxpython program, my panel is behaving differently depending on whether I make it a derived class or a straight panel instance:
import wx
class PanelWithText(wx.Panel):
def __init__(self, parent):
super(PanelWithText, self).__init__(parent)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
panel1 = wx.Panel(parent)
st1 = wx.StaticText(panel1, label='Some Text')
hbox1.Add(st1)
class Example(wx.Frame):
def __init__(self, parent, title):
super(Example, self).__init__(parent, title=title,
size=(390, 350))
panel = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL) # comment out from here
panel1 = wx.Panel(panel) #
st1 = wx.StaticText(panel1, label='Some Text') #
hbox1.Add(st1) # to here
# panel1 = PanelWithText(panel)
vbox.Add(panel1)
panel.SetSizer(vbox)
self.Centre()
self.Show()
if __name__ == '__main__':
app = wx.App()
Example(None, title='Example')
app.MainLoop()
If I run it as is, it looks fine. If I run it commenting out the four lines that create panel1 and uncommenting the line that creates panel1 using the derived class, the "Some Text" gets clipped and only shows "Sor". Worse things start happening when I make a non-trivial program.
These two seem identical to me. What is the difference?
I'm using: Python 2.7.6 wxpython 3.0.0.0 Mac Yosemite 10.10.2