wxpython:如何配置长方体大小调整器,使其具有一个可以调整大小的中心柱,但不会';t改变尺寸(图中说明)
我不知道如何嵌套我的尺码器,以便获得以下行为wxpython:如何配置长方体大小调整器,使其具有一个可以调整大小的中心柱,但不会';t改变尺寸(图中说明),python,wxpython,Python,Wxpython,我不知道如何嵌套我的尺码器,以便获得以下行为 当用户调整窗口大小时,我希望所有窗口小部件的配置保持不变,但使包含所有内容的中央列保持居中 使用盒子大小器,您应该相应地调整比例。侧面的垫片应填满剩余空间,而中间部分应有固定的空间。见: 盒子大小器的独特功能是,它可以在两个方向(高度和宽度)上生长,但可以在其子代之间不均匀地在主方向(水平方向)上分布生长。这是由比例参数决定的,当项目被添加到施胶器中时,给项目分配比例参数。它被解释为一个权重因子,即它可以为零,表示窗口的大小可能根本无法调整,或者不
当用户调整窗口大小时,我希望所有窗口小部件的配置保持不变,但使包含所有内容的中央列保持居中 使用盒子大小器,您应该相应地调整比例。侧面的垫片应填满剩余空间,而中间部分应有固定的空间。见: 盒子大小器的独特功能是,它可以在两个方向(高度和宽度)上生长,但可以在其子代之间不均匀地在主方向(水平方向)上分布生长。这是由比例参数决定的,当项目被添加到施胶器中时,给项目分配比例参数。它被解释为一个权重因子,即它可以为零,表示窗口的大小可能根本无法调整,或者不能超过零如果多个窗口的值大于零,则该值将相对于大小调整器的所有权重因子之和进行解释,因此,当添加两个值为1的窗口时,它们的大小将相等,并且在调整固定大小项目的大小后,每个窗口将获得一半的可用空间 另请参见此小示例代码(使用wxFormBuilder生成)。我已经强调间隔符的比例为1,而应用程序的比例为0
class MyFrame1 (wx.Frame):
def __init__(self):
super(MyFrame1, self).__init__()
fluid_sizer = wx.BoxSizer(wx.HORIZONTAL)
fluid_sizer.AddSpacer((0, 0), 1, wx.EXPAND, 5)
# ^--- proportion = 1
self.fixed_panel = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.Size(-1,-1), wx.TAB_TRAVERSAL)
self.fixed_panel.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT))
fixed_sizer = wx.BoxSizer(wx.VERTICAL)
fixed_sizer.SetMinSize(wx.Size(150,-1))
self.m_button1 = wx.Button(self.fixed_panel, wx.ID_ANY, u"MyButton", wx.DefaultPosition, wx.DefaultSize, 0)
fixed_sizer.Add(self.m_button1, 0, wx.ALL, 5)
self.fixed_panel.SetSizer(fixed_sizer)
self.fixed_panel.Layout()
fixed_sizer.Fit(self.fixed_panel)
fluid_sizer.Add(self.fixed_panel, 0, wx.EXPAND |wx.ALL, 5)
# ^--- proportion = 0
fluid_sizer.AddSpacer((0, 0), 1, wx.EXPAND, 5)
# ^--- proportion = 1
self.SetSizer(fluid_sizer)
self.Layout()
哇,回答得很好,伙计。非常感谢。把一切都清理干净。