wxPython:嵌套GridBagSizers不跨越?

wxPython:嵌套GridBagSizers不跨越?,wxpython,sizer,Wxpython,Sizer,我在现有的GridBagSizer(sizer)中没有GridBagSizer(folderBagSizer)。。。现在我尝试用一些标签填充嵌套的sizer(folderBagSizer)。他们出现在施胶器下面 # Create static box self.sb_ExtractOptions = wx.StaticBox(panel, label="Options for Extract", size=(100,100)) folderBoxSizer = wx.GridBagSi

我在现有的GridBagSizer(sizer)中没有GridBagSizer(folderBagSizer)。。。现在我尝试用一些标签填充嵌套的sizer(folderBagSizer)。他们出现在施胶器下面

# Create static box
self.sb_ExtractOptions = wx.StaticBox(panel, label="Options for Extract", 
    size=(100,100))
folderBoxSizer = wx.GridBagSizer(4, 9)
folderBoxSizer.Add(self.sb_ExtractOptions, pos=(0,0), span=(1,4), 
    flag=wx.EXPAND, border=10)

# Create the options
label_OptionsCreated = wx.StaticText(panel, label="Created:")
label_OptionsInserted = wx.StaticText(panel, label="Inserted:")
label_OptionsModified = wx.StaticText(panel, label="Modified:")

# Add them to the sizer (folderBoxSizer)
folderBoxSizer.Add(label_OptionsCreated, pos=(1, 0), flag=wx.LEFT|
    wx.ALIGN_CENTER_VERTICAL|wx.TOP, border=3)
folderBoxSizer.Add(label_OptionsInserted, pos=(2, 0), flag=wx.LEFT|
    wx.ALIGN_CENTER_VERTICAL|wx.TOP, border=3)
folderBoxSizer.Add(label_OptionsModified, pos=(3, 0), flag=wx.LEFT|
    wx.ALIGN_CENTER_VERTICAL|wx.TOP, border=3)

folderBoxSizer.AddGrowableCol(2)
sizer.Add(folderBoxSizer, pos=(2, 0), span=(1,6),flag=wx.TOP|wx.LEFT|wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, border=10)


sizer.AddGrowableCol(2)
panel.SetSizer(sizer)

提前感谢。:)

解决了这个问题,当然还有一个完全的noob逻辑问题

    # Create static box
    self.sb_ExtractOptions = wx.StaticBox(panel, label="Options for Extract", size=(100,100))
    sbs_ExtractOptions = wx.StaticBoxSizer(self.sb_ExtractOptions, wx.VERTICAL)
    OptionBoxSizer = wx.GridBagSizer(4, 9)

    # Create the options
    logicList = ['<', '<=', '=', '>', '>=']

    sizerIndexX = 0

    # Created
    label_OptionsCreated = wx.StaticText(panel, label="Created:")
    combo_LogicalCreated = wx.ComboBox(panel, 1, "", (25, 25), (60, 25), logicList, wx.CB_DROPDOWN)
    combo_LogicalCreated.Select(1)
    self.tc_DaysAgoCreated = wx.TextCtrl(panel)
    label_DaysAgoCreated = wx.StaticText(panel, label="days ago")
    # Add them to the sizer (optionBoxSizer)
    OptionBoxSizer.Add(label_OptionsCreated, pos=(sizerIndexX, 0), flag=wx.ALL|
        wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT, border=0)
    OptionBoxSizer.Add(combo_LogicalCreated, pos=(sizerIndexX,1), flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL, border=1)
    OptionBoxSizer.Add(self.tc_DaysAgoCreated, pos=(sizerIndexX, 2), flag=wx.ALL|
        wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT, border=0)
    OptionBoxSizer.Add(label_DaysAgoCreated, pos=(sizerIndexX,3), flag=wx.ALL|
        wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT, border=0)

<snip>

   sbs_ExtractOptions.Add(OptionBoxSizer, flag=wx.TOP|wx.LEFT|wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, border=10)
    sizer.Add(sbs_ExtractOptions, pos=(2, 0), span=(1,6),flag=wx.TOP|wx.LEFT|wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, border=10)
#创建静态框
self.sb_ExtractOptions=wx.StaticBox(面板,label=“提取选项”,大小=(100100))
sbs_ExtractOptions=wx.StaticBoxSizer(self.sb_ExtractOptions,wx.VERTICAL)
OptionBoxSizer=wx.GridBagSizer(4,9)
#创建选项
logicList=['=']
SizerIndex=0
#创造
label\u OptionsCreated=wx.StaticText(面板,label=“Created:”)
combo_LogicalCreated=wx.ComboBox(面板,1,“,(25,25),(60,25),logicList,wx.CB_下拉列表)
组合逻辑已创建。选择(1)
self.tc_DaysAgoCreated=wx.TextCtrl(面板)
label\u DaysAgoCreated=wx.StaticText(面板,label=“days ago”)
#将它们添加到大小器(optionBoxSizer)
OptionBoxSizer.Add(label_OptionsCreated,pos=(sizerIndex,0),flag=wx.ALL|
wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT,border=0)
OptionBoxSizer.Add(combo_LogicalCreated,pos=(SizerIndex,1),flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL,border=1)
OptionBoxSizer.Add(self.tc_DaysAgoCreated,pos=(sizerIndex,2),flag=wx.ALL|
wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_LEFT,border=0)
OptionBoxSizer.Add(label_DaysAgoCreated,pos=(sizerIndex,3),flag=wx.ALL|
wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_LEFT,border=0)
sbs|u ExtractOptions.Add(OptionBoxSizer,flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND | wx.ALIGN |居中|垂直,边框=10)
sizer.Add(sbs|u ExtractOptions,pos=(2,0),span=(1,6),flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND | wx.ALIGN|u CENTER|u VERTICAL,border=10)
最初,我将静态框的大小调整器添加到错误的大小调整器中--它需要的工作方式是:

  • 创建静态框(self.sb\u选项)
  • 创建 将位于其中的sizer,在本例中为StaticBoxSizer。 (sbs_选件)
  • 为要布局的对象创建网格 在施胶器内(OptionBoxSizer)
  • 创建GUI元素并添加 将它们发送到OptionBoxSizer
  • 将OptionBoxSizer添加到 StaticBoxSizer(即,将步骤4中的操作添加到步骤2)
  • 加 将StaticBoxSizer连接到面板的主sizer(本例中为sizer)
  • 喝一杯啤酒,或者5杯。像我在学校一样庆祝你的新课 对你正在做的事情给予异常的关注
    施胶器基本上是看不见的。您如何判断这些小部件是否在“大小写”下?如果稍微调整框架的大小,它们是否会跳转到正确的位置?