这是关于wxBoxSizer的问题。我正在实现像可折叠窗格一样的自定义wxWidget。
问题是:我有一个wxBoxSizer(Sizer1),我添加了另一个wxBoxSizer(Sizer2)作为它的子。如果我改变Sizer2的大小,我如何让Sizer1自动或手动更新它的大小?
我在Sizer2上调用SetSize()后尝试在Sizer1上调用适合()和布局(),但它并没有改变大小对于Sizer1。
请帮助,谢谢!
答案 0 :(得分:2)
wxBoxSizer1已占据整个面板。因此,除非您更改面板本身的大小,否则不会调整wxBoxSizer1的大小。您可能希望尝试使用其他大小作为主要大小,例如wxFlexGridSizer。在这里,您可以有更多选择进行精确控制。
答案 1 :(得分:1)
wxWidgets中的布局始终从上到下工作,更改子窗口或子大小调整器的大小永远不会改变包含窗口的大小。如果您确实希望这样做,请在父窗口上调用Fit()
告诉它应该变得与其子项一样大。请注意,在面板上调用它仍然不够,您需要在顶级wxFrame
或wxDialog
本身执行此操作,除非您在其中有一些可用于容纳增加面板尺寸。