簡體   English   中英

overrideredirect() 有什么作用?

[英]What does overrideredirect() do?

我開始了解overrideredirect有助於刪除工具欄等默認窗口裝飾。它還有什么其他用途? 我不是很確定,也找不到太多文檔。

我在 mac 上工作。 使用 tkinter 我想獲得保持 maxsize 且無法調整大小的窗口,這是我使用geometryresizable實現的。 我現在需要的是保證我的用戶沒有隨機擊鍵可以關閉窗口。 overrideredirect幫助我嗎? 有什么替代方法嗎?

您可以使用overrideredirect()並將其標志設置為True 這將使您的窗口無法通過上面鏈接中提到的常規方式關閉。 常規方式是指X按鈕和Alt + F4按鍵組合。

由於您使用了geometry()resizable() ,您將需要調用update_idletasks()以強制在應用程序下一次空閑之前更新顯示

下面是一個例子:

import Tkinter as Tk

root = Tk.Tk()
root.geometry('200x200+100+100')
root.resizable(False, False)
root.update_idletasks()
root.overrideredirect(True)
root.mainloop()

這種方法的缺點:它總是適用於 Microsoft Windows 平台,但它可能不適用於某些 Unix 和 MacOS 平台。

編輯:

您詢問了有關update_idletasks() ,我認為最好直接從其文檔中引用,因為它更清楚(但如果您不理解此引用,請告訴我):

一些更新顯示的任務,例如調整大小和重新繪制小部件,被稱為空閑任務,因為它們通常被推遲到應用程序完成處理事件並返回主循環以等待新事件。

如果您想在應用程序下一次空閑之前強制更新顯示,請在任何小部件上調用 w.update_idletasks() 方法。

使用overrideredirect(True)另一個副作用是您將丟失所有快捷方式(鍵綁定)。 我不確定是否有辦法防止這種情況發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM