圖形用戶界面(GUI)常見問題?

圖形界面常見問題?

Python 有哪些 GUI 工具包??

Standard builds of Python include an object-oriented interface to the Tcl/Tk widget set, called tkinter. This is probably the easiest to install (since it comes included with most binary distributions of Python) and use. For more info about Tk, including pointers to the source, see the Tcl/Tk home page. Tcl/Tk is fully portable to the macOS, Windows, and Unix platforms.

存在多種選項,具體取決于你的目標(biāo)平臺。 Python Wiki 上提供了一個 跨平臺平臺專屬 的 GUI 框架列表。

有關(guān)Tkinter的問題?

我怎樣“凍結(jié)”Tkinter程序??

Freeze (意為 “凍結(jié)”)是一個用來創(chuàng)建獨立應(yīng)用程序的工具。 當(dāng) “凍結(jié)” Tkinter 程序時,程序并不是真的能夠獨立運行,因為程序仍然需要 Tcl 和 Tk 庫。

一種解決方法是將程序與 Tcl 和 Tk 庫一同發(fā)布,并且在運行時使用環(huán)境變量 TCL_LIBRARYTK_LIBRARY 指向他們的位置。

為了獲得真正能獨立運行的應(yīng)用程序,來自庫里的 Tcl 腳本也需要被整合進(jìn)應(yīng)用程序。 一個做這種事情的工具叫 SAM (stand-alone modules,獨立模塊) ,它是 Tix distribution (http://tix.sourceforge.net/) 的一部分。

在啟用 SAM 時編譯 Tix ,在 Python 文件 Modules/tkappinit.c 中執(zhí)行對 Tclsam_init() 等的適當(dāng)調(diào)用,并且將程序與 libtclsam 和 libtksam 相鏈接(可能也要包括 Tix 的庫)。

在等待 I/O 操作時能夠處理 Tk 事件嗎??

在 Windows 以外的其他平臺上可以,你甚至不需要使用線程! 但是你必須稍微修改一下你的 I/O 代碼。 Tk 有與 Xt 的 XtAddInput() 對應(yīng)的調(diào)用,它允許你注冊一個回調(diào)函數(shù),當(dāng)一個文件描述符可以進(jìn)行 I/O 操作的時候,Tk 主循環(huán)將會調(diào)用這個回調(diào)函數(shù)。 參見 文件處理程序。

在Tkinter中鍵綁定不工作:為什么??

經(jīng)常聽到的抱怨是:已經(jīng)通過 bind() 方法綁定了事件的處理程序,但是,當(dāng)按下相關(guān)的按鍵后,這個處理程序卻沒有執(zhí)行。

最常見的原因是,那個綁定的控件沒有“鍵盤焦點”。請在 Tk 文檔中查找 focus 指令。通常一個控件要獲得“鍵盤焦點”,需要點擊那個控件(而不是標(biāo)簽;請查看 takefocus 選項)。