首页 文章

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

提问于
浏览
0

这个问题在这里已有答案:

寻找有关如何使用Python 2.7 for Windows删除或禁用可调整大小的窗口's maximize button under Windows. I' m的建议 .

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

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

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

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

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

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

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

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

马尔科姆

1 回答

  • 3

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

    root.attributes("-toolwindow", 1)
    

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

相关问题