python - 禁用、隐藏或删除 Tkinter 中的关闭 "X"按钮

标签 python python-2.7 tkinter

我想向客户端显示 GUI,但我不想让客户端可以通过 [X] 按钮关闭窗口。

如何禁用、隐藏或删除 Tkinter 窗口的关闭 [X] 按钮?

我找到了以下答案:

  1. Python Tkinter “X” button control
  2. Removing minimize/maximize buttons in Tkinter

但是,这些帖子并没有回答我的问题。我想禁用、隐藏或完全删除 [X] 按钮。

当我使用协议(protocol)时:

def __init__(self):
    Frame.__init__(self, bg = "black")
    self.protocol('WM_DELETE_WINDOW', self.doSomething)
    self.pack(expand = 1, fill = BOTH)

def doSomething(self):
    if showinfo.askokcancel("Quit?", "Are you sure you want to quit?"):
        self.quit()

我收到以下错误:

self.protocol('WM_DELETE_WINDOW', self.doSomething) AttributeError: 'GUI' object has no attribute 'protocol'

最佳答案

调用 protocol 方法的问题在于它是根窗口上的方法,但您的 GUI 对象不是根窗口。如果您在根窗口上调用协议(protocol)方法,您的代码将起作用。

至于如何完全删除该按钮——没有方法可以简单地删除该按钮。您可以通过设置 overrideredirect 标志来删除所有窗口管理器按钮和框架。

关于python - 禁用、隐藏或删除 Tkinter 中的关闭 "X"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21490423/

相关文章:

python - 如何使用sqlalchemy获取在sqlite中创建的数据库的sql转储

python - 在C++ API中加载经过python训练的xgboost,预测结果为空

python - 如何提高自动编码器的准确性?

python - 从美分到美元的数字格式

python - django-storages S3 后端无法加载

user-interface - Tkinter 中的多个窗口?

Python 不想导入 App 类(tkinter)

python - Django中同一模型的多个多对多关系

python - Centos 上带有 sqlite3 模块的 python 2.7.3 的问题

python - 从 tkvar.get() 截断字典