圖形用戶(hù)界面(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.
存在多種選項,具體取決于你的目標平臺。 Python Wiki 上提供了一個(gè) 跨平臺 和 平臺專(zhuān)屬 的 GUI 框架列表。
有關(guān)Tkinter的問(wèn)題?
我怎樣“凍結”Tkinter程序??
Freeze (意為 “凍結”)是一個(gè)用來(lái)創(chuàng )建獨立應用程序的工具。 當 “凍結” Tkinter 程序時(shí),程序并不是真的能夠獨立運行,因為程序仍然需要 Tcl 和 Tk 庫。
一種解決方法是將程序與 Tcl 和 Tk 庫一同發(fā)布,并且在運行時(shí)使用環(huán)境變量 TCL_LIBRARY
和 TK_LIBRARY
指向他們的位置。
為了獲得真正能獨立運行的應用程序,來(lái)自庫里的 Tcl 腳本也需要被整合進(jìn)應用程序。 一個(gè)做這種事情的工具叫 SAM (stand-alone modules,獨立模塊) ,它是 Tix distribution (http://tix.sourceforge.net/) 的一部分。
在啟用 SAM 時(shí)編譯 Tix ,在 Python 文件 Modules/tkappinit.c
中執行對 Tclsam_init()
等的適當調用,并且將程序與 libtclsam 和 libtksam 相鏈接(可能也要包括 Tix 的庫)。
在等待 I/O 操作時(shí)能夠處理 Tk 事件嗎??
在 Windows 以外的其他平臺上可以,你甚至不需要使用線(xiàn)程! 但是你必須稍微修改一下你的 I/O 代碼。 Tk 有與 Xt 的 XtAddInput()
對應的調用,它允許你注冊一個(gè)回調函數,當一個(gè)文件描述符可以進(jìn)行 I/O 操作的時(shí)候,Tk 主循環(huán)將會(huì )調用這個(gè)回調函數。 參見(jiàn) 文件處理程序。
在Tkinter中鍵綁定不工作:為什么??
經(jīng)常聽(tīng)到的抱怨是:已經(jīng)通過(guò) bind()
方法綁定了事件的處理程序,但是,當按下相關(guān)的按鍵后,這個(gè)處理程序卻沒(méi)有執行。
最常見(jiàn)的原因是,那個(gè)綁定的控件沒(méi)有“鍵盤(pán)焦點(diǎn)”。請在 Tk 文檔中查找 focus 指令。通常一個(gè)控件要獲得“鍵盤(pán)焦點(diǎn)”,需要點(diǎn)擊那個(gè)控件(而不是標簽;請查看 takefocus 選項)。