我有这样的设置:
Frame->Panel->BoxSizer
The BoxSizer has 2 BoxSizers that are hidden at launch:
EditBoxSizer->FlexSizer with some inputs.
GridBoxSizer->Grid
GridBoxSizer 有一个网格。
EditBoxSizer 只是一些静态文本和输入框。
GridBoxSizer 和 EditBoxSizer 永远不会同时显示。所以每个人总是得到 100% 的 sizer 空间。
显示 EditBoxSizer 时,隐藏 GridBoxSizer。它工作完美。
隐藏 EditBoxSizer 时,会显示 GridSizer。但是,我可以在网格上看到来自 EditBoxSizer 的 StaticText 和输入框工件。
如果我最小化并恢复窗口,它看起来很完美。
我觉得我已经尝试了一切:
隐藏所有各种尺寸器和面板,然后运行 layout() 然后显示它们。显示面板和 sizer 然后运行 layout() 不隐藏面板。
重绘完全被重绘的 BoxSizer 的正确方法是什么?
我用的是 wxgo,但你可以用 WxWidgets 或 WxPython 回答,我可以翻译。