Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wxpython:如何配置长方体大小调整器,使其具有一个可以调整大小的中心柱,但不会';t改变尺寸(图中说明)_Python_Wxpython - Fatal编程技术网

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()

哇,回答得很好,伙计。非常感谢。把一切都清理干净。