圖形使用者介面常見問題解答¶
通用 GUI 問題¶
Python 有哪些 GUI 工具包?¶
Python 的標準版本包含一個面向 Tcl/Tk 部件集的面向物件介面,稱為 tkinter。這可能是最容易安裝(因為它包含在大多數 Python 的二進位制發行版中)和使用的。有關 Tk 的更多資訊,包括指向原始碼的指標,請參閱 Tcl/Tk 主頁。Tcl/Tk 完全可移植到 macOS、Windows 和 Unix 平臺。
Tkinter 問題¶
如何凍結 Tkinter 應用程式?¶
Freeze 是用於建立獨立應用程式的工具。凍結 Tkinter 應用程式時,應用程式不會真正獨立,因為應用程式仍然需要 Tcl 和 Tk 庫。
一種解決方案是將應用程式與 Tcl 和 Tk 庫一起交付,並使用 TCL_LIBRARY
和 TK_LIBRARY
環境變數在執行時指向它們。
各種第三方凍結庫(如 py2exe 和 cx_Freeze)內建了對 Tkinter 應用程式的處理。
在等待 I/O 時,我可以讓 Tk 處理事件嗎?¶
在 Windows 以外的平臺上,可以,您甚至不需要執行緒!但是您必須稍微重組一下 I/O 程式碼。Tk 具有與 Xt 的 XtAddInput()
呼叫等效的功能,允許您註冊一個回撥函式,該函式將在檔案描述符上可以進行 I/O 時從 Tk 主迴圈呼叫。請參閱 檔案處理程式。
我無法在 Tkinter 中使按鍵繫結工作:為什麼?¶
經常聽到的抱怨是,使用 bind()
方法繫結到事件的事件處理程式,即使在按下相應的鍵時也不會被處理。
最常見的原因是應用繫結的部件沒有“鍵盤焦點”。檢視 Tk 文件中的焦點命令。通常,透過單擊部件(但不適用於標籤;請參閱 takefocus 選項)可以使部件獲得鍵盤焦點。