Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.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
Python 如何阻止WXWidgets sizer中的工件被重新绘制?_Python_C_Wxpython_Wxwidgets_Wxgo - Fatal编程技术网

Python 如何阻止WXWidgets sizer中的工件被重新绘制?

Python 如何阻止WXWidgets sizer中的工件被重新绘制?,python,c,wxpython,wxwidgets,wxgo,Python,C,Wxpython,Wxwidgets,Wxgo,我有这样的设置: 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%

我有这样的设置:

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%的施胶空间

显示EditBoxSizer时,GridBoxSizer将隐藏。它工作得很好

隐藏EditBoxSizer时,将显示GridSizer。但是,我可以在网格上看到EditBoxSizer的静态文本和输入框工件

如果我最小化并恢复窗口,它看起来很完美

我觉得我什么都试过了:

隐藏所有不同的大小和面板,然后运行layout(),然后显示它们。 显示面板和sizer,然后运行布局() 没有隐藏面板

重新绘制完全重新绘制的BoxSizer的正确方法是什么


我使用的是wxgo,但是你可以用WxWidgets或WxPython回答,我可以翻译。

你能展示一些代码吗?隐藏一个控件,显示另一个控件,然后在最外面的大小调整器上调用layout()就足够了。另外,了解平台和wx版本也会很有帮助。wxgo是否包括wxSimplebook?如果是这样,wxSimplebook应该为您处理EditBoxSizer和GridBoxSizer之间的切换。在将它们添加到simplebook之前,您需要在面板或其他容器窗口中同时添加它们,因为大小调整器本身不是windows,而是windows 10 64位。我不确定wx的版本。不管wxgo用什么。。。我会看看SimpleBook。我会包括代码,但有1000行。一旦我把这个部件修好了,我就要回去把它清理干净。hah.当sizer本身被隐藏时,所有sizer元素都应该被隐藏,所以如果它们以任何方式、排序或形式保持可见,看起来就像wxWidgets中的一个bug。但是如果没有一个简单的复制方法,就很难确定。如果wxWidgets真的是一个bug,那么更新到wxWidgets的最新版本(截至本文撰写之时为3.1.3)绝对不会有什么坏处。@VZ和Igor感谢您的帮助!我正在接受你关于simplebook的建议,但我在这方面遇到了麻烦,你也在帮助我。哈。