我想要做的是创建3列,随着窗口的扩展而扩展。但是我想对它加以限制,以便不同的列扩展到不同的最大数量。
我在这里所做的是使用wxGlade来创建一个具有1行和3列的网格大小调整器的框架。我希望Part1的固定宽度为'A',Part2的固定宽度为'B',Part3能够正常扩展。
我该怎么做?
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
# generated by wxGlade 0.6.3 on Tue May 24 11:35:21 2011
import wx
# begin wxGlade: extracode
# end wxGlade
class MyFrame1(wx.Frame):
def __init__(self, *args, **kwds):
# begin wxGlade: MyFrame1.__init__
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.panel_1 = wx.Panel(self, -1)
self.sizer_10_staticbox = wx.StaticBox(self.panel_1, -1, "Part2")
self.sizer_11_staticbox = wx.StaticBox(self.panel_1, -1, "Part3")
self.sizer_9_staticbox = wx.StaticBox(self.panel_1, -1, "Part1")
self.__set_properties()
self.__do_layout()
# end wxGlade
def __set_properties(self):
# begin wxGlade: MyFrame1.__set_properties
self.SetTitle("frame_2")
# end wxGlade
def __do_layout(self):
# begin wxGlade: MyFrame1.__do_layout
sizer_8 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_4 = wx.GridSizer(1, 3, 0, 0)
sizer_11 = wx.StaticBoxSizer(self.sizer_11_staticbox, wx.HORIZONTAL)
sizer_10 = wx.StaticBoxSizer(self.sizer_10_staticbox, wx.HORIZONTAL)
sizer_9 = wx.StaticBoxSizer(self.sizer_9_staticbox, wx.HORIZONTAL)
grid_sizer_4.Add(sizer_9, 1, wx.EXPAND, 0)
grid_sizer_4.Add(sizer_10, 1, wx.EXPAND, 0)
grid_sizer_4.Add(sizer_11, 1, wx.EXPAND, 0)
self.panel_1.SetSizer(grid_sizer_4)
sizer_8.Add(self.panel_1, 1, wx.EXPAND, 0)
self.SetSizer(sizer_8)
sizer_8.Fit(self)
self.Layout()
# end wxGlade
# end of class MyFrame1
if __name__ == "__main__":
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
frame_2 = MyFrame1(None, -1, "")
app.SetTopWindow(frame_2)
frame_2.Show()
app.MainLoop()
答案 0 :(得分:1)
如果您使用的是GridSizer,我建议您先查看GridBagSizer。
一旦您确定它是否可用,那么您可能需要查看sizer.AddGrowableRow(row)
和sizer.AddGrowableCol(col)
方法。它们允许您指示网格中展开的列或行。他们没有像BoxSizers那样熟悉使用比例(所以如果两列增长它们都以相同的速度增长),但是你可以设置一些扩展而另一些不扩展。
索引是基于零的,所以根据你的描述我会猜到像gridbagsizer_4.AddGrowableCol(2)
这样的东西,但是就像我的评论所说的那样,wxGlade的命名惯例让我感到恶心并且很难确定,这些方法不会可以在GridSizer上使用。
对于任何感兴趣的人士,我的表格构建和表单对话框类都有一个帖子:Form Builder。在我可以包含附件的网站上发布它比在这里尝试粘贴它更容易。