1.设置Panel类的size,pos属性(具体init的时候就可以设置),且组件大于1个历宏.
2.使用布局器,类似
mainSizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(mainSizer)
mainSizer.Add(panel, 1, wx.EXPAND)#第一个参数布局的组件,第二参数是占得比例,第三薯烂冲个是一些属性。
proportion控制控件相对大小,proportion如果为0,表示默认大小。比如一个box里面有两个相同控件A,B,如果A,B的察卜proportioin分别为2和1,那么A和B显示出来的大小比例就是2:1;如果一个box里面有三个相同控件A,B,C,它们的proportion分别为0,1,1,那么A会是默认大小(比如一个只岁没厅有一行的文本框),B,C平分这个box的其余部分。
wx.EXPAND 表示空间会填充满所有它能填充的地方,比如在一乎隐个box里面放一个空间,加上这个style=wx.EXPAND,控件就会占据整个box的空间。它是和wx.LEFT, wx.RIGHT这些style配合使用的。
wx.ALL = wx.LEFT | wx.RIGHT | wx.TOP | wx.BOTTOM我试了一下,貌似如果纤宏迹只有一个组件的话,默认是填满整个窗口,两个就没毁并问题了。如果真绝春只有一个,可以试试布局
class PosFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, size = (200, 200), pos = (200, 200))
panel1 = wx.Panel(self, -1, pos = (50, 50), size = (50, 50))
panel1.SetBackgroundColour("green")
#panel2 = wx.Panel(self, -1, pos = (100, 100), size = (50, 50))
#panel2.SetBackgroundColour("blue")
btn = wx.Button(panel1, -1, "PK")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)