【问题标题】:wxpython span gridbagsizer in staticBox静态框中的 wxpython 跨度 gridbagsizer
【发布时间】:2017-11-19 16:01:57
【问题描述】:

我尝试在 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()

【问题讨论】:

  • 现在没时间回答,gbs.AddGrowableCol(1) 不是gbs.AddGrowableCol(0)

标签: wxpython gridbagsizer


【解决方案1】:

您的问题是您正在定义gbs.AddGrowableCol(0)
您将 gbs 中的第 0 列用于您正在输出的文本,而不是第 1 列中的 TextCtrl 字段。
鉴于文本字段没有 wx.EXPAND 属性,您没有看到问题。
gbs.AddGrowableCol(0) 更改为gbs.AddGrowableCol(1) 即可按您的需要运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多