overrideredirect做什么?

mom*_*omo 7 python tkinter

我已经明白了overrideredirect有助于删除像工具栏这样的默认窗口装饰.它的其他用途是什么?我不是很确定,也找不到太多文件.

我正在使用mac.使用tkinter我想获得的窗口仍然是maxsize并且无法调整大小,这是我使用几何可调整大小实现的.我现在需要的是保证我的用户没有随机击键可以关闭窗口.overrideredirect会帮助我吗?还有其他选择吗?

Bil*_*adj 5

您可以使用overrideredirect()并设置其标志True.这将禁用您的窗口通过常规方式关闭,如上面的链接中所示.通过常规方式,它意味着X按钮和Alt+ F4击键组合.

既然你使用geometry()resizable(),你将需要调用update_idletasks()牛逼O强制应用程序下一步空转之前更新显示.

这是一个例子:

import Tkinter as Tk

root = Tk.Tk()
root.geometry('200x200+100+100')
root.resizable(False, False)
root.update_idletasks()
root.overrideredirect(True)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

这种方法的缺点:它总是适用于Microsoft Windows平台,但它可能无法在某些Unix和MacOS平台上运行.

编辑:

您要求澄清一下update_idletasks(),我认为如果我直接从其文档中引用它会更好(因为它更清楚(但如果你不理解这个引用,请告诉我):

更新显示的某些任务(例如调整大小和重绘小部件)称为空闲任务,因为它们通常会延迟到应用程序完成处理事件并返回主循环以等待新事件.

如果要在应用程序下次空闲之前强制更新显示,请在任何窗口小部件上调用w.update_idletasks()方法.