我有一个包含单个项目的wxpython框架,例如:
class Panel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.text = wx.StaticText(self, label='Panel 1')
我有一个框架包含几个面板,包括这个面板,尺寸由尺寸控制。
我想要这个
StaticText
扩大。
使用A
BoxSizer
只包含文本并设置
wx.EXPAND
flag可以做到这一点,但是仅仅为一个项目使用sizer似乎很愚蠢。
有更简单的解决方案吗?
(我可以加上
静态文本
直接到父帧的sizer,但对于我的设计来说,直接从帧开始更有意义。)
我刚刚意识到,当创建一个
博克斯泽
一个项目不适用于
wx.VERTICAL
:
class Panel1(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.BackgroundColour = 'red'
sizer = wx.BoxSizer(wx.VERTICAL)
self.Sizer = sizer
self.list = wx.ListBox(self, choices=[str(i) for i in xrange(100)])
sizer.Add(self.list, 0, wx.EXPAND)
sizer.Fit(self)
当然,一个项目可以,但是如果我想稍后垂直添加一个项目,并且仍然使两个项目都展开(例如,当用户的窗口展开时),该怎么办?
编辑:
啊,我刚刚发现,要使框式施胶机以两种方式都能增长,必须使用比例。(即,将0替换为1英寸
BoxSizer.Add
的电话。