【发布时间】:2015-05-06 02:04:52
【问题描述】:
在我的 wxpython 程序中,面板的行为会有所不同,具体取决于我将其设为派生类还是直接面板实例:
导入 wx 类 PanelWithText(wx.Panel): def __init__(自我,父母): 超级(PanelWithText,自我).__init__(父) hbox1 = wx.BoxSizer(wx.HORIZONTAL) panel1 = wx.Panel(父) st1 = wx.StaticText(panel1, label='Some Text') hbox1.Add(st1) 类示例(wx.Frame): def __init__(self, parent, title): 超级(示例,自我).__init__(父,标题=标题, 大小=(390, 350)) 面板 = wx.Panel(self) vbox = wx.BoxSizer(wx.VERTICAL) hbox1 = wx.BoxSizer(wx.HORIZONTAL) # 从这里注释掉 panel1 = wx.Panel(panel) # st1 = wx.StaticText(panel1, label='Some Text') # hbox1.Add(st1) # 到这里 # panel1 = PanelWithText(面板) vbox.Add(panel1) panel.SetSizer(vbox) 自我中心() 自我展示() 如果 __name__ == '__main__': 应用程序 = wx.App() 示例(无,标题='示例') app.MainLoop()如果我按原样运行它,它看起来不错。 如果我运行它,注释掉创建 panel1 的四行并取消注释使用派生类创建 panel1 的行,“一些文本”被剪裁,只显示“Sor”。当我编写一个不平凡的程序时,更糟糕的事情开始发生。
这两个在我看来是一样的。有什么区别?
我正在使用: Python 2.7.6 wxpython 3.0.0.0 Mac 优胜美地 10.10.2
【问题讨论】: