【问题标题】:How to make a window with no X button [duplicate]如何制作没有X按钮的窗口[重复]
【发布时间】:2021-09-14 02:48:19
【问题描述】:

我正在尝试在 Tkinter 中创建一个没有 X 按钮的窗口,

像图片一样,看看它是如何缺少 X 按钮的,我正在尝试弄清楚如何制作一个窗口 没有 X 按钮。

【问题讨论】:

  • 您使用的是哪个 GUI 框架?
  • @HALF9000 我正在使用 Python 的 tkinter 库

标签: python tkinter


【解决方案1】:

我不认为你可以使用 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

如果你运行这个程序,你会发现一个没有关闭按钮的自定义标题栏。

【讨论】:

  • 当 OP 从未询问过它时,在标题栏上移动有什么意义。顺便说一句,这个解决方案对我不起作用!
  • 您使用的是 Mac 电脑吗?如果您使用的是 Mac 计算机,则必须添加另一条语句(如上所述),顺便说一句,我已经删除了移动标题栏的功能。
【解决方案2】:

如果你想用 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()

【讨论】:

    猜你喜欢
    • 2011-03-18
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2018-11-10
    • 2014-04-02
    • 2021-12-06
    相关资源
    最近更新 更多