如何设置Tkinter窗口禁止最小化,同时保留最大化与关闭功能?
Tkinter 禁止窗口最小化实现方案
预期效果如下图所示:
实现思路
Tkinter 没有提供直接禁用最小化按钮的单独参数,需要通过修改窗口的系统样式位实现需求,Windows 平台下可通过调用系统 User32 API 完成样式修改,全程不影响最大化、关闭按钮的正常使用。
完整可运行代码
import tkinter as tk from ctypes import windll root = tk.Tk() root.title("禁最小化窗口测试") root.geometry("400x300") # 配置窗口样式,移除最小化按钮 GWL_STYLE = -16 WS_MINIMIZEBOX = 0x00020000 # 获取窗口句柄 hwnd = windll.user32.GetParent(root.winfo_id()) # 读取当前窗口样式 current_style = windll.user32.GetWindowLongW(hwnd, GWL_STYLE) # 清除最小化按钮的样式位 new_style = current_style & ~WS_MINIMIZEBOX # 写入新的窗口样式 windll.user32.SetWindowLongW(hwnd, GWL_STYLE, new_style) root.mainloop()
代码说明
- 该实现仅适用于Windows平台,运行后窗口的最小化按钮会变为灰色不可点击状态
- 最大化按钮、关闭按钮功能完全保留,同时窗口的拖拽缩放功能不受影响
- 若需要适配macOS或Linux平台,可对应修改对应系统的窗口管理器属性配置,核心逻辑都是移除最小化按钮的样式标识
内容的提问来源于stack exchange,提问作者user14745999
相关产品推荐
相关产品推荐

