Wxpython 当某些内部内容更改其大小时,如何正确更新多个级别的嵌套大小调整器?

Wxpython 当某些内部内容更改其大小时,如何正确更新多个级别的嵌套大小调整器?,wxpython,wxwidgets,Wxpython,Wxwidgets,我正在构建一个WX应用程序,其中主窗口(“框架”)有两个内容区域:左侧的主内容区域和右侧的侧边栏。侧边栏由垂直堆叠的面板集合组成,每个面板由标题和内容区域组成。主窗口的视图层次结构如下所示: 主窗口(wx.BoxSizer,水平) 主内容区(wx.面板) 侧栏(wx.BoxSizer,垂直) 侧栏面板1(wx.BoxSizer,垂直) 标题1(wx.StaticText) 内容区1(wx.面板) 侧栏面板2(wx.BoxSizer,垂直) 标题2(wx.StaticText) 内容区

我正在构建一个WX应用程序,其中主窗口(“框架”)有两个内容区域:左侧的主内容区域和右侧的侧边栏。侧边栏由垂直堆叠的面板集合组成,每个面板由标题和内容区域组成。主窗口的视图层次结构如下所示:

  • 主窗口(wx.BoxSizer,水平)
    • 主内容区(wx.面板)
    • 侧栏(wx.BoxSizer,垂直)
      • 侧栏面板1(wx.BoxSizer,垂直)
        • 标题1(wx.StaticText)
        • 内容区1(wx.面板)
      • 侧栏面板2(wx.BoxSizer,垂直)
        • 标题2(wx.StaticText)
        • 内容区2(wx.面板)
随着我的应用程序的运行,每个侧边栏面板中的内容区域都会发生变化,因此侧边栏面板需要能够随着其内容区域的增长和收缩而调整自身大小,同样,侧边栏本身也需要能够随着其同级的增长和收缩而适当地上下移动其面板

我的问题是如何确保所有这些sizer都进行了适当的更新。例如,“侧边栏面板2”是它自己的类。如果它做了一些改变其内容区域大小的事情,那么它需要更新哪些大小,以及应该使用哪种方法来更新?哪些尺码器应该自动更新

(我这样问是因为我目前很难正确更新其中一个侧边栏面板的内容区域,我想在重写该类之前确保视图层次结构中它上面的所有内容都是正确的。)

您必须对任何小部件或小部件所在的大小器调用Layout()。Robin Dunn(wxPython的创建者)在wxPython wiki上对此做了很好的解释:

它提到,您可以使用帮助您确定要调用布局的小部件/大小器