GUI,是 Graphics User Interface(圖形用戶界面)的縮寫。在 GUI 中,并不只是輸入文本和返回文本,用戶可以看到窗口、按鈕、文本框等組件,還可以通過(guò)鼠標(biāo)和鍵盤操作應(yīng)用。
GUI 是程序交互的一種不同的方式,使用 GUI 開發(fā)的程序,和命令行程序一樣,都具有輸入數(shù)據(jù)、處理數(shù)據(jù)和輸出數(shù)據(jù)這 3 個(gè)基本要素,只不過(guò),使用 GUI 開發(fā)的程序,它們的輸入和輸出方式更豐富,更有趣。
值得一提的是,Python GUI 庫(kù)有很多,下面給大家羅列了常用的幾種 GUI 庫(kù)。
wxPython
wxPython 是一個(gè)跨平臺(tái)的 GUI 工具集,以流行的 wxWidgets(原名 wxwindows)為基礎(chǔ),提供了良好的跨平臺(tái)外觀。簡(jiǎn)單來(lái)說(shuō),wxPython 在 Windows上調(diào)用 Windows 的本地組件、在 mac OS 上調(diào)用 Mac OS X 的本地組件、在 linux 上調(diào)用 Linux 的本地組件,這樣可以讓 GUI 程序在不同的平臺(tái)上顯示平臺(tái)對(duì)應(yīng)的風(fēng)格。wxPython 是一個(gè)非常流行的跨平臺(tái)的 GUI 庫(kù)。其官方網(wǎng)址是http://www.wxpython.org/。
PyQt
PyQt 是 Python 編程語(yǔ)言和 Qt 庫(kù)的成功融合。Qt 本身是一個(gè)擴(kuò)展的 C++ GUI 應(yīng)用開發(fā)框架,Qt 可以在 UNIX、Windows 和 Mac OS X 上完美運(yùn)行,因此 PyQt 是建立在 Qt 基礎(chǔ)上的 Python 包裝。所以 PyQt 也能跨平臺(tái)使用。
PyGTK
PyGTK 基于老版本的 GTK+2 的庫(kù)提供綁定,借助于底層 GTK+2 所提供的各種可視化元素和組件,同樣可以開發(fā)出在 GNOME 桌面系統(tǒng)上運(yùn)行的軟件,因此它主要適用于 Linux/UNIX 系統(tǒng)。PyGTK 對(duì) GTK+2 的 C 語(yǔ)言進(jìn)行了簡(jiǎn)單封裝,提供了面向?qū)ο蟮木幊探涌凇F涔俜骄W(wǎng)址是http://www.pygtk.org/。
Pywin32
Windows Pywin32 庫(kù)允許我們像 VC 一樣的形式使用 Python 開發(fā) win32 應(yīng)用。
Kivy
Kivy 是一個(gè)開源庫(kù),它能夠讓使用相同源代碼創(chuàng)建的程序?qū)崿F(xiàn)跨平臺(tái)運(yùn)行。同時(shí),Kivy 主要關(guān)注創(chuàng)新型用戶界面開發(fā),例如多點(diǎn)觸摸應(yīng)用程序。
Flexx
Flexx 是一個(gè)純 Python 工具包,可以用來(lái)創(chuàng)建圖形化界面程序,還支持使用 Web 技術(shù)進(jìn)行界面的渲染。
除了以上這些 Python GUI 庫(kù)之外,Python 還有一個(gè)官方御用的 GUI 庫(kù),即 Tkinter 庫(kù),我們常用的 IDLE 就是用 Tkinter 開發(fā)的。
Tkinter 是 Python 標(biāo)準(zhǔn) GUI 庫(kù),其最初是為 Tcl(這是一門工具命令語(yǔ)言,而不是某個(gè)電視機(jī)品牌)設(shè)計(jì)的,由于其良好的可移植性和靈活性,加上非常容易使用,因此逐漸被移植到很多腳本語(yǔ)言中,包括 Perl、Ruby 和 Python。






