WxPython - 如何隐藏窗口上的 X 和展开按钮

1 python windows wxpython python-2.7

我正在制作一个Python程序,在某些功能中它需要隐藏X和展开窗口按钮,我该怎么做?我使用 WxPython,我该如何将其放入?

aba*_*ert 6

窗口框架中的小部件被定义为窗口样式的一部分:CLOSE_BOXMINIMIZE_BOXMAXIMIZE_BOX

\n\n

因此,当您创建窗口时,只需保留这些样式即可。

\n\n

如果您使用子wx.Frame类,请注意其中DEFAULT_FRAME_STYLE包含这些值,因此您必须将它们屏蔽掉:

\n\n
style = wx.DEFAULT_FRAME_STYLE & (~wx.CLOSE_BOX) & (~wx.MAXIMIZE_BOX)\nsuper().__init__(whatever, args, you, use, style=style)\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

如果您想在创建后更改它们,请使用SetWindowStyle

\n\n
style = self.GetWindowStyle()\nself.SetWindowStyle(style & (~wx.CLOSE_BOX) & (~wx.MAXIMIZE_BOX))\nself.Refresh()\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,请注意该函数的文档说:

\n\n
\n

请注意,某些样式在创建窗口后无法更改,并且在更改其他样式后可能需要调用 Refresh() 才能立即发生更改。

\n
\n\n

而且,据我所知,在 Windows 上,如果您创建一个带有关闭框的窗口,然后稍后以这种方式将其删除,它实际上并不会消失。它确实会禁用,这可能已经足够好了。但如果没有,除非深入到wx本机 Windows API(这变得非常棘手),或者手动在框架上绘制小部件(这变得更加棘手,特别是如果您关心在不同版本的 Windows\xe2\x80\x94 上正确查看,更不用说移植到其他平台)。

\n