天天看點

Python GUI 程式設計常用庫介紹 [Python GUI 常用庫概述][tkinter][PyGObject][PyGTK][PyQt][PySide2][wxPython][Jython]1 GUI 概述2 GUI 常用庫【友情連結】【參考資料】

您的“關注”和“點贊”,是信任,是認可,是支援,是動力…

如意見相佐,可留言。

本人必将竭盡全力試圖做到準确和全面,終其一生進行修改補充更新。

文章目錄

  • 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 官網。

【友情連結】

微信公衆号:碼農阿傑

部落格園

【參考資料】

wikiGuiProgramming

Python GTK+ 3 教程

PyGTK 官網

PyQt5 參考指南

PySide2 官網

wxPython 官網

Jython 官網

PyPi 官網

Python 官網

Python 3.8.2 documentation