我尝试在 StaticBox 中使用 GridBaxSizer 格式化表单。网格有 2 行 4 列,带有 TextCtrl 的输入字段应该使用 3 列并在可用空间上展开。
tc1 和 tc2 中的 span 和 expand - 标志对 tc1 和 tc2 的宽度没有任何影响。它们仅出现在框中的右侧。
我看不出问题出在哪里。有人可以帮忙吗?
这是代码:
import wx
class GbsTest(wx.Frame):
def __init__(self, parent, title):
super(GbsTest, self).__init__(parent, title=title, size=(800, 600))
self.InitUI()
self.Show()
def InitUI(self):
panel = wx.Panel(self)
sizer = wx.GridBagSizer()
box = wx.StaticBox(panel, label='Demo')
boxSizer = wx.StaticBoxSizer(box, wx.VERTICAL)
gbs = wx.GridBagSizer(2, 4)
text2 = wx.StaticText(panel, label="Name")
gbs.Add(text2, pos=(1, 0), flag=wx.LEFT|wx.TOP, border=10)
tc1 = wx.TextCtrl(panel)
gbs.Add(tc1, pos=(1, 1), span=(1, 3), flag=wx.LEFT|wx.EXPAND)
text3 = wx.StaticText(panel, label="Package")
gbs.Add(text3, pos=(2, 0), flag=wx.LEFT|wx.TOP, border=10)
tc2 = wx.TextCtrl(panel)
gbs.Add(tc2, pos=(2, 1), span=(1, 3), flag=wx.LEFT|wx.EXPAND)
gbs.AddGrowableCol(0)
boxSizer.Add(gbs, flag=wx.EXPAND)
sizer.Add(boxSizer, pos=(0, 0), flag=wx.EXPAND | wx.ALL, border=5)
sizer.AddGrowableCol(0)
panel.SetSizer(sizer)
if __name__ == '__main__':
app = wx.App()
GbsTest(None, title="GBS-Test")
app.MainLoop()