您的“關注”和“點贊”,是信任,是認可,是支援,是動力…
如意見相佐,可留言。
本人必将竭盡全力試圖做到準确和全面,終其一生進行修改補充更新。
文章目錄
- 1 GUI 概述
- 2 GUI 常用庫
-
- 2.1 GUI 常用庫概述
- 2.2 Tkinter
- 2.3 PyGObject
- 2.4 PyGTK
- 2.5 PyQt
- 2.6 PySide2
- 2.7 wxPython
- 2.8 Jython:
- 【友情連結】
-
- 微信公衆号:碼農阿傑
- 部落格園
- 【參考資料】
-
- wikiGuiProgramming
- [Python GTK+ 3 教程](https://python-gtk-3-tutorial.readthedocs.io/en/latest/)
- [PyGTK 官網](http://www.pygtk.org/)
- [PyQt5 參考指南](https://www.riverbankcomputing.com/static/Docs/PyQt5/)
- [PySide2 官網](https://pypi.org/project/PySide2/)
- [wxPython 官網](https://www.wxpython.org/)
- [Jython 官網](https://www.jython.org/)
- [PyPi 官網](https://pypi.org)
- [Python 官網](https://www.python.org/)
- [Python 3.8.2 documentation](https://docs.python.org/release/3.8.2/)
1 GUI 概述
圖形使用者界面,英文 Graphical User Interface,簡稱 GUI,又稱圖形使用者接口,是指采用圖形方式顯示的計算機操作使用者界面。
圖形使用者界面是一種人與計算機通信的界面顯示格式,允許使用者使用滑鼠等輸入裝置操縱螢幕上的圖示或菜單選項,以選擇指令、調用檔案、啟動程式或執行其它一些日常任務。
圖形使用者界面由視窗、下拉菜單、對話框及其相應的控制機制構成,在各種新式應用程式中都是标準化的,即相同的操作總是以同樣的方式來完成,在圖形使用者界面,使用者看到和操作的都是圖形對象,應用的是計算機圖形學的技術。
與通過鍵盤輸入文本或字元指令來完成例行任務的字元界面相比,圖形使用者界面很受歡迎,例如Windows 之是以廣為人知,其最初的吸引力就是來自它所提供的圖形使用者界面。
作為一個程式設計者,優先要考慮使用者的體驗感受,一定要讓使用者感到滿意,使用起來友善,程式才會被需要、被使用,這樣的程式才具有價值。
2 GUI 常用庫
2.1 GUI 常用庫概述
本文簡單介紹一下 Python 常用的主要跨平台(Windows,Mac OS X,類 Unix) 的圖形使用者界面庫。
此外還存在許多其他适用于 Python 的 GUI 工具集,既有跨平台的,也有特定平台專屬的。 請參見 Python Wiki 中的 GUI 程式設計頁面檢視更完整的清單 Python Wiki GuiProgramming。
對于像我一樣有“選擇困難症”的人來說,選擇是很痛苦的一件事兒,有很多的 GUI 庫,到底要用哪一種呢?
我個人認為,隻要選擇一種自己喜歡的,用的順手的,并深入鑽研下去就很好了。蘿蔔白菜,各有所愛呗。情人眼裡出西施,不是情人的都不是西施。
如果你自己不去嘗試着都使用一遍,找到自己喜歡的,也可以聽取其他人的建議。下面羅列了一些常用的 GUI 庫,希望能幫到大家一點點。
2.2 Tkinter
參見 官方文檔。
Tkinter 是 Python 自帶的 GUI 庫,無須進行額外的下載下傳安裝,隻要導入
tkinter
包即可使用。
Tkinter 子產品(Tk 接口)是 Python 的标準 Tk GUI 工具包的接口 。Tk 和 Tkinter 可以在大多數的 Unix 平台下使用,同樣可以應用在 Windows 和 Macintosh(一般指 MAC) 系統裡。Tk 8.0 的後續版本可以實作本地視窗風格,并良好地運作在絕大多數平台中。
在 Python 3.x 中 Tkinter 已經更改為
tkinter
,使用方法是
import tkinter
。
tkinter 最大的優點就一個字:快;再一個,是 Python 自帶的,無需下載下傳安裝。
盡管官方文檔不太完整,但有其他資源可以參考,比如 Tk 手冊、教程等。
tkinter 也以比較過時的外觀為人所知,但在 Tk 8.5 中,這一點得到了極大的改觀。
對于 Tkinter ,我們可以做一了解,不建議使用,因為 Tkinter 沒有提供一個圖形界面設計器,如果你想要建構一個 GUI 界面布局,你就必須自己寫代碼,這一點就會讓我們放棄使用它。
2.3 PyGObject
PyGObject 是一個 Python 軟體包,它為基于 GObject 的庫(例如 GTK,GStreamer, WebKitGTK,GLib,GIO 等)提供綁定。這些庫可以支援 GTK+3 圖形界面工具集,GTK+ 3 可視化部件集就是此類函數庫中的一個,是以 GObject 提供了豐富的圖形界面元件,比 tkinter 提供的更多。
GTK+3 請參見 Python GTK+ 3 教程。
PyGObject 官網請參見 PyGObject 官網。
2.4 PyGTK
PyGTK 提供了對較舊版本的庫 GTK+ 2 的綁定,借助于底層 GTK+2 所提供的各種可視化元素群組件,同樣可以開發出在 GNOME 桌面系統上運作的軟體,是以它主要适用于 Linux/UNIX 系統。PyGTK 對 GTK+2 的 C 語言進行了簡單封裝,提供了面向對象的程式設計接口。
比 Tkinter 更現代的外觀效果和更多的可視化部件。
官方網址是 PyGTK 官網。
2.5 PyQt
PyQt 是 Python 程式設計語言和 Qt 庫的成功融合。作為 Python 的一個子產品,不完全統計有 620 多個類和 6000 多個函數和方法。Qt 本身是一個擴充的 C++ GUI 應用開發架構,Qt 可以在 UNIX、Windows 和 Mac OS X 上完美運作,是以 PyQt 是建立在 Qt 基礎上的 Python 包裝。是以 PyQt 也能跨平台使用。
它比 Tkinter 更現代的外觀效果和更多的可視化元件。 它有一個 QT Desiginer,這個設計器可以友善我們進行頁面的布局,在 Tkinter 裡面需要寫代碼完成的頁面布局,在 QT 裡面隻要拖一拖控件就搞定了。
PyQt5是雙重許可,開發者可以在 GPL(通用公共許可證) 和商業許可證之間進行選擇。
PyQt5 參考指南 PyQt 5 參考指南。
如果對 Python GUI 感興趣,可以研究一下 PyQt 哦。
2.6 PySide2
PySide2 也稱為 Qt for Python 項目,是對 Qt 工具包的較新綁定。它由 Qt Company 提供,旨在為 Qt 5 提供完整的 PySide 端口。
與 PyQt 相比,其許可方案比非開源應用程式更友好。
PySide2 官網 PySide2 官網。
2.7 wxPython
wxPython 是一個跨平台的 GUI 工具集,wxPython 以流行的 wxWidgets(原名 wxWindows)為基礎,提供了良好的跨平台外觀。
wxPython 是免費的,源代碼是開放的,允許其應用在商業産品上,你可以免費使用它和共享它。同時,它也提供類似 QT Designer 的設計器 wxFormbuilder。雖然是免費的,但是該有的功能沒有缺失,完全夠用。
通過盡可能使用每個平台的本機小部件(在類似 Unix 的系統上為 GTK +),它為 Windows,Mac OS X 和 Unix 系統上的應用程式提供了本機外觀。除了大量的小部件之外,wxPython 還提供了用于線上文檔和上下文相關幫助,列印,HTML檢視,低級裝置上下文繪制,拖放,系統剪貼闆通路,基于 XML 的資源格式等的類,包括不斷增長的使用者貢獻子產品庫。
簡單來說,wxPython 在 Windows 上調用 Windows 的本地元件、在 Mac OS 上調用 Mac OS X 的本地元件、在 Linux 上調用 Linux 的本地元件,這樣可以讓 GUI 程式在不同的平台上顯示平台對應的風格。
官網位址 wxPython 官網。
2.8 Jython:
Jython 程式可以和 Java 無縫內建。
除了一些标準子產品,Jython 使用 Java 的子產品。
Jython 幾乎擁有标準的 Python 中不依賴于 C 語言的全部子產品。比如,Jython 的使用者界面将使用 Swing,AWT 或者 SWT。Jython 可以被動态或靜态地編譯成 Java 位元組碼。
Jython 官網 Jython 官網。