圖形用戶界面(GUI)常見(jiàn)問(wèn)題?

圖形界面常見(jiàn)問(wèn)題?

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.

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

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

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

Freeze (意為 “凍結(jié)”)是一個(gè)用來(lái)創(chuàng)建獨(dú)立應(yīng)用程序的工具。 當(dāng) “凍結(jié)” Tkinter 程序時(shí),程序并不是真的能夠獨(dú)立運(yùn)行,因?yàn)槌绦蛉匀恍枰?Tcl 和 Tk 庫(kù)。

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

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

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

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

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

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

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

最常見(jiàn)的原因是,那個(gè)綁定的控件沒(méi)有“鍵盤(pán)焦點(diǎn)”。請(qǐng)?jiān)?Tk 文檔中查找 focus 指令。通常一個(gè)控件要獲得“鍵盤(pán)焦點(diǎn)”,需要點(diǎn)擊那個(gè)控件(而不是標(biāo)簽;請(qǐng)查看 takefocus 選項(xiàng))。