import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Test',size=wx.Size(500,500))
self.panel = wx.Panel(self, -1,pos=(20,40),size=wx.Size(10,500))
self.panel = wx.Panel(self, -1,size=wx.Size(500,10))
self.Show()
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame()
app.MainLoop()
此代码将在同一窗口内创建两个面板对象。如果wx.Panel调用的任一行被删除,则另一面板的尺寸将不正确,它将填满整个框架。
为什么?
请参阅以下文档wx.Frame
:
wx.Frame
处理以下事件:
-wxEVT_SIZE
:如果框架仅具有一个子窗口,不计算状态和工具栏,则将调整此子窗口的大小以占据整个框架工作区。[...]
您可以定义自己的Sizer来指定其他行为:
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Test',size=wx.Size(500,500))
self.panel = wx.Panel(self, -1,size=wx.Size(500,10))
self.sizer = wx.BoxSizer(wx.HORIZONTAL)
self.sizer.Add(self.panel)
self.SetSizer(self.sizer)
self.Show()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句