python - 在 Windows 下删除或禁用可调整大小的 Tkinter 窗口最大化按钮

标签 python windows events tkinter maximize

寻求有关如何在 Windows 下删除或禁用可调整大小窗口的最大化按钮的建议。我正在使用适用于 Windows 的 Python 2.7。

背景:我有一个可调整大小的窗口,其最小和最大尺寸通过窗口的 minsize() 和 maxsize() 方法设置。当用户单击最大化按钮时,窗口将移动到显示屏的左上角。这让我的用户感到非常困惑,因此我想阻止这种行为。

我的研究显示了几种禁用最大化按钮的方法 - 但这些技术似乎都不适用于可调整大小的窗口?

  1. 通过 ressized( False, False ) 方法防止窗口调整大小。

  2. 通过 overrideredirect( True ) 方法删除所有窗口的控件(和边框)。

  3. 使用神秘的transient(1)方法(这会在Windows下引发异常)。

  4. 绑定(bind)窗口的事件并尝试阻止最大化(更新:当我们的处理程序检测到最大化事件时,Tkinter 已经最大化了窗口。返回“break”或使用 Geometry(size|position) 来调整大小和大小重新定位窗口都被忽略)

  5. 我在 Python Win32 API 邮件列表上发布了一个问题,看看我们是否可以使用 Windows API 调用通过我相信(?)Tkinter 公开的 hWnd 句柄来禁用窗口的最大化按钮。

有没有办法可以捕获最大化事件(在 Tkinter 执行之前)?

马尔科姆

最佳答案

一种可能性是将窗口设置为工具窗口,但这也会带来副作用;该窗口将不再出现在任务栏中,并且将有一个细标题栏。它仍然可以在边缘调整大小。

root.attributes("-toolwindow", 1)

有关根属性的更多信息可以在 this guidebook 中找到。 .

关于python - 在 Windows 下删除或禁用可调整大小的 Tkinter 窗口最大化按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4333341/

相关文章:

python - Tornado 的 reverse_url 到完全限定的 URL

python - Web.py Apache mod_wsgi url 重写

python - Google Appengine URLFetch 超时 - 有任何最佳实践吗?

windows - 如何在Windows上初始化并运行Docker?

javascript - 捕捉并停止中键点击

python - 如何使用多处理模块迭代列表并将其与字典中的键匹配?

python - 我们可以欺骗 Cygwin 的 Python 在 win32 平台上吗? (安装 PyBluez)

linux - MS-DOS 设备的 MacOS 点文件删除

multithreading - 一次调用ResetEvent是否会重置所有线程或仅调用线程的信号事件? (WINAPI)

jQuery 设置事件/悬停背景图像