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

时间:2010-12-02 09:14:13

标签: python windows events tkinter maximize

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

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

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

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

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

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

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

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

  6. 有没有办法可以捕获最大化事件(BEFORE Tkinter执行它)?

    马尔科姆

1 个答案:

答案 0 :(得分:3)

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

root.attributes("-toolwindow", 1)

有关根属性的更多信息,请参阅this guidebook