我尝试在StaticBox中使用GridBaxSizer格式化表单。 网格有2行4列,带TextCtrl的输入字段应使用3个cols并扩展可用空间。
tc1和tc2中的跨度以及expand-flag对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()
答案 0 :(得分:0)
您的问题是您要定义"ptor"
您在"appstore"
中使用第0列表示要输出的文本,而不是第1列中的Array
(
[0] => mysqli
[1] => appstore
[2] => sql
[3] => postgresql
[4] => lesson
)
字段。
鉴于文本字段没有gbs.AddGrowableCol(0)
属性,您没有看到问题
将gbs
更改为TextCtrl
,然后根据需要运行。