WXPYTHON:如何调整包含顶层框架中带有按钮的面板的拆分器窗口的大小

WXPYTHON:如何调整包含顶层框架中带有按钮的面板的拆分器窗口的大小,python,wxpython,Python,Wxpython,我有一个拆分窗口,其中包含一个带有两个按钮的wx面板 一,。按钮1 2.按钮2 拆分器小部件似乎与其子部件一起固定 这是我的wx帧代码 class MyFrame(wx.Frame): def __init__(self,title, pos, size): wx.Frame.__init__(self, None, -1, title, pos, size) self.MainSizer=wx.GridBagSizer(4,4) self.sea

我有一个拆分窗口,其中包含一个带有两个按钮的wx面板

一,。按钮1 2.按钮2

拆分器小部件似乎与其子部件一起固定

这是我的wx帧代码

class MyFrame(wx.Frame):
    def __init__(self,title, pos, size):
        wx.Frame.__init__(self, None, -1, title, pos, size)
        self.MainSizer=wx.GridBagSizer(4,4)    self.search_pane_splitter=wx.SplitterWindow(self,style=wx.SP_NOBORDER,name="splitterWindow")
        self.search_pane_panel=wx.Panel(self.search_pane_splitter,size=(500,500),style=wx.SUNKEN_BORDER)
        r=wx.Button(self.search_pane_panel,label="button1")
        x=wx.Button(self.search_pane_panel,label="button2")
        self.MainSizer.Add(r,pos=(1,1),span=(1,1),flag=wx.EXPAND)
        self.MainSizer.Add(x,pos=(5,5),span=(2,2),flag=wx.EXPAND)
        self.MainSizer.AddGrowableCol(10)
        self.MainSizer.AddGrowableCol(1)
        self.MainSizer.AddGrowableRow(10)
        self.MainSizer.AddGrowableRow(7)
        self.search_pane_panel.SetSizer(self.MainSizer)
更改顶层框架的大小时,如何使拆分器窗口及其所有子元素增长


如果做不到这一点,我们欢迎其他解决方案

这里是经过修改的python演示,以使所有内容都得到发展。 每个项目都需要EXPAND标志,它的扩展程度根据您告诉它要跨越的行数和列数而有所不同。在这里,我让一切都在成长

#!/usr/bin/env python

"""
A simple test of the GridBagSizer

http://wiki.wxpython.org/index.cgi/WriteItYourself

"""

import wx

class MyFrame(wx.Frame):
    def __init__(self, parent, ID, title):
        wx.Frame.__init__(self, parent, ID, title, wx.DefaultPosition)

        Buttons = []
        for i in range(6):
            Buttons.append(wx.Button(self,-1, "Button %i"%(i)))

        sizer = wx.GridBagSizer(9, 9)
        sizer.Add(Buttons[0], (0, 0), (1,1), wx.EXPAND)
        sizer.Add(Buttons[1], (1, 1), (1,7), wx.EXPAND)
        sizer.Add(Buttons[2], (6, 6), (3,3), wx.EXPAND)
        sizer.Add(Buttons[3], (3, 0), (1,1), wx.EXPAND)
        sizer.Add(Buttons[4], (4, 0), (1,1), wx.EXPAND)
        sizer.Add(Buttons[5], (5, 0), (1,1), wx.EXPAND)

        sizer.AddGrowableRow(0)
        sizer.AddGrowableRow(1)
        sizer.AddGrowableRow(2)
        sizer.AddGrowableRow(3)
        sizer.AddGrowableRow(4)
        sizer.AddGrowableRow(5)
        sizer.AddGrowableRow(6)
        sizer.AddGrowableRow(7)
        sizer.AddGrowableRow(8)
        sizer.AddGrowableRow(9)
        sizer.AddGrowableCol(0)
        sizer.AddGrowableCol(1)
        sizer.AddGrowableCol(2)
        sizer.AddGrowableCol(3)
        sizer.AddGrowableCol(4)
        sizer.AddGrowableCol(5)
        sizer.AddGrowableCol(6)
        sizer.AddGrowableCol(7)
        sizer.AddGrowableCol(8)
        sizer.AddGrowableCol(9)

        self.SetSizerAndFit(sizer)
        self.Centre()


class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None, -1, "wx.gridbagsizer.py")
        frame.Show(True)
        self.SetTopWindow(frame)
        return True

if __name__ == "__main__":
    app = MyApp(0)
    app.MainLoop()    
请注意,除了sizer.addgrowtablerow0之外,您还可以使用比例标志,如sizer.addgrowtablerow0.1中所示,但随后情况开始变得异常! 很遗憾,我找不到sizer.addgrowtablerowwx.ALL变体。也许其他人可以帮忙,因为它看起来很笨拙,声明了每一个。 在代码中,您已将网格大小设定器声明为4行4列,但随后将可增长的行和列声明为4x4网格之外。实际上,您还声明x应该定位在5,5。 它似乎并不在意,它只是将项目推入,但随后的说明被忽略,我知道它将允许您声明超出所声明的网格边界的可增长行,而无需抱怨