You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Tkinter创建没有X关闭按钮的窗口

Tkinter创建无X关闭按钮窗口的实现方法

无X按钮窗口示例

方案1:跨平台全标题栏移除

该方法会直接去掉系统提供的整个标题栏,自然不存在X关闭按钮,同时支持全平台(Windows/MacOS/Linux)生效,适合需要自定义窗口UI的场景:

import tkinter as tk

# 主窗口实例
root = tk.Tk()
# 核心配置:设置为True即可移除默认标题栏
root.overrideredirect(True)
root.geometry("400x250")

# 可自行添加自定义关闭按钮等交互控件
tk.Button(root, text="手动关闭窗口", command=root.destroy, padx=10, pady=5).pack(pady=100)

root.mainloop()

注意:该方案实现后窗口默认不支持拖动、最小化等操作,需要自己绑定鼠标事件实现对应逻辑。

方案2:仅隐藏X按钮,保留原有标题栏(Windows平台专属)

如果不需要修改整体标题栏样式,仅去掉X关闭按钮,可以调用Windows系统API实现,需要先安装依赖:
pip install pywin32
实现代码:

import tkinter as tk
import win32gui
import win32con

root = tk.Tk()
root.geometry("400x250")
root.title("仅隐藏X按钮的窗口")

# 获取当前窗口句柄
hwnd = win32gui.GetParent(root.winfo_id())
# 读取当前窗口样式
current_style = win32gui.GetWindowLong(hwnd, win32con.GWL_STYLE)
# 移除系统菜单对应的样式位,即可去掉X关闭按钮
current_style &= ~win32con.WS_SYSMENU
win32gui.SetWindowLong(hwnd, win32con.GWL_STYLE, current_style)

root.mainloop()

附加:禁用X按钮点击功能(非隐藏)

如果不需要隐藏X按钮,只是要让点击X不生效,可以直接绑定窗口关闭协议:

import tkinter as tk

root = tk.Tk()
root.geometry("400x250")

# 自定义关闭逻辑,这里直接pass就是点击X无反应
def on_close():
    pass
root.protocol("WM_DELETE_WINDOW", on_close)

root.mainloop()

内容的提问来源于stack exchange,提问作者Rydex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:48:02