【发布时间】:2021-09-14 02:48:19
【问题描述】:
【问题讨论】:
-
您使用的是哪个 GUI 框架?
-
@HALF9000 我正在使用 Python 的 tkinter 库
【问题讨论】:
我不认为你可以使用 Tkinter 制作这样的窗口,但是,你可以删除标题栏并重新制作,而无需关闭按钮:
这里有一些代码:
from tkinter import *
root = Tk()
root.overrideredirect(True)
root.geometry('400x100+200+200')
title_bar = Frame(root, bg='white', relief='raised', bd=2)
window = Canvas(root, bg='black')
title_bar.pack(expand=1, fill=X)
window.pack(expand=1, fill=BOTH)
root.mainloop()
如果是 Mac 电脑:
from tkinter import *
root = Tk()
root.overrideredirect(1)
root.overrideredirect(0)
root.geometry('400x100+200+200')
title_bar = Frame(root, bg='white', relief='raised', bd=2)
window = Canvas(root, bg='black')
title_bar.pack(expand=1, fill=X)
window.pack(expand=1, fill=BOTH)
root.mainloop()
注意:此代码取自here。
如果你运行这个程序,你会发现一个没有关闭按钮的自定义标题栏。
【讨论】:
如果你想用 Tkinter 以你想要的方式编辑标题栏,你将不得不关闭标题栏并从头开始重建所有这些方法。
但是对于这种禁用“关闭按钮”的情况,您有 3 个选项:使用回调函数,或使用root.overriderdirect(True),或使用root.attributes('-disabled', True)
Refer to this question
我建议禁用“X”按钮的最简单方法是:
from tkinter import *
from tkinter import ttk
win= Tk()
win.geometry("750x250")
def close_win():
win.destroy()
def disable_event():
pass
#Create a button to close the window
btn = ttk.Button(win, text ="Click here to Close",command=close_win)
btn.pack()
#Disable the Close Window Control Icon
win.protocol("WM_DELETE_WINDOW", disable_event)
win.mainloop()
【讨论】: