前面介紹的所有程式都是基於命令列的,這些程式可能只有一些“專業”的計算機人士才會使用。例如前面編寫的五子棋等程式,恐怕只有程式設計師自己才願意玩這麼“糟糕”的遊戲,很少有終端使用者願意對著黑乎乎的命令列介面敲命令。
相反,如果為程式提供直觀的
圖形化使用者介面(Graphics User Interface, GUI),終端使用者通過拖動滑鼠、單擊等動作就可以操作整個應用,這樣的應用程式就會很受政迎(實際上,Windows 之所以廣為人知,其最初的吸引力就是來自它所提供的圖形化使用者介面)。
作為一個程式設計者,必須優先考慮使用者的感受,一定要讓使用者感到“爽”,程式才會被需要、被使用,這樣的程式才有價值。
在真正開始介紹 Python 圖形介面程式設計之前,首先簡單介紹一下 Python 的圖形化使用者介面庫。
1) PyGObject
PyGObject 庫為基於 GObject 的 C 函數庫提供了內省系結,這些庫可以支援 GTK+3 圖形介面工具集,因此時 GObject 提供了豐富的圖形介面元件。
2) PyGTK
PyGTK 基於老版本的 GTK+2 的庫提供系結,藉助於底層 GTK+2 所提供的各種視覺化元素和元件,同樣可以開發出在 GNOME 桌面系統上執行的軟體,因此它主要適用於 Linux/UNIX 系統。PyGTK 對 GTK+2 的 C 語言進行了簡單封裝,提供了物件導向的程式設計介面。其官方網址是http://www.pygtk.org/。
3) PyQt
PyQt 是 Python 程式語言和 Qt 庫的成功融合。Qt 本身是一個擴充套件的 C++ GUI 應用開發框架,Qt 可以在 UNIX、Windows 和 Mac OS X 上完美執行,因此 PyQt 是建立在 Qt 基礎上的 Python 包裝。所以 PyQt 也能跨平台使用。
4) PySide
PySide 是由 Nokia 提供的對 Qt 工具集的新的包裝庫,目前成熟度不如 PyQt。
5) wxPython
wxPython 是一個跨平台的 GUI 工具集,wxPython 以流行的 wxWidgets(原名 wxWindows)為基礎,提供了良好的跨平台外觀。簡單來說,wxPython 在 Windows上呼叫 Windows 的本地元件、在 Mac OS 上呼叫 Mac OS X 的本地元件、在 Linux 上呼叫 Linux 的本地元件,這樣可以讓 GUI 程式在不同的平台上顯示平台對應的風格。wxPython 是一個非常流行的跨平台的 GUI 庫。其官方網址是http://www.wxpython.org/。
如果讀者有需要,則完全可以選擇上面這些 Python GUI 庫來開發圖形化使用者介面。如果考慮開發跨平台的圖形化使用者介面,則推薦使用 PyQt 或 wsPython。
本章所介紹的 GUI 庫是
Tkinter,它是 Python 自帶的 GUI 庫,無須進行額外的下載安裝,只要匯入 tkinter 包即可使用。