Python 圖形使用者介面程式設計

/! 這一篇是GUI Programming in Python中譯版本。

Python 有一大堆的GUI架構(或工具包)可以用,從 Tkinter (Python 本身內建,使用 Tk) 到一些其他跨平台的解決方案,以及繫結於特定平台(也叫 “原生”)的技術。

知名的資訊作家蔡學鏞雖然在GUI的開發瓶頸對Tk的gui設計不滿意曾說:「像Tk這樣的GUI套件往往太僵化,且不美觀,做出來的GUI效果並不吸引人,甚至和OS的GUI差異太大,畫面反而看起來顯得詭異。」但也提到「儘管不合適,也只好將就著使用。」或許你可以在下面的資原中找到答案也不一定。

※2022/02/10 新增自稱是Python中GUI的終極工具:appJar
※2021/09/09 今天再針對python gui ide的部份做一些更新,如果有機會再玩的話,多分享一些出來。

跨瀏覽器架構

  • Package

    Target

    Latest version

    Latest update date

    Notes

    Anvil

    所有主要的Web瀏覽器

    1.6.6 2021-11-30

    只使用Python的全端網站應用程式,免費線上拖拉的GUI建置器,有內建(免費增值的模式)主機給應用程式使用

    Atlas toolkit for Python

    所有主要的Web瀏覽器

    0.13 2021-12-11

    有更快且簡易的方式新增多功能的圖形界面及網路能力到程式

    JustPy

    所有主要的Web瀏覽器

    0.1.5

    2020-10-14

    一個物件導向的高階 Python Web 架構,不需要前端的程式設計。

    PyJamas

    所有主要的Web瀏覽器

    0.8 2012-06-01

    有完整的元件工具包、Python-to-Javascript 編譯器及AJAX 函式庫,提供MVC架構的”V”視圖,查看 PyjamasDesktop

跨平台架構

雖然有很多其他的技術也積極提供Python的繫結,但是Python架構所依據的主要跨平台的技術包括 Gtk、 Qt、 Tk 及 wxWidgets。

  • Package

    Target

    Latest version

    Latest update date

    Notes

    appJar

    Windows, macOS, Linux

    0.94 2019-05-26

    Tkinter 簡單直觀的裝飾器。 正在積極開發中,專為教育目的而設計,文件很多且功能豐富!

    AVC

    many

    0.8.3 2011-02-15

    完全自動的連結繪圖介面元件及應用程式變數。

    Dabo

    WxPython

    0.9.12 2013-06-12

    Dabo 是一個三層式跨平台的應用發展架構,適用Python 頂上的 wxPython GUI 工具包寫成 – 察看 http://dabodev.com/

    formlayout

    Qt

    1.0.15

    2013-08-27

    寫GUI程式碼時用於建構表單對話框/小工具來編輯不同型態的參數的小型Python模組

    GnomePython

    Gnome

    2.28.1 2010-03-31

    Gnome 平台繫結:bonobo、 bonoboui、 gconf、 gnome、 gnomecanvas、 gnomevfs、 gnomeui

    GnomePythonDesktop

    Gnome

    2.32.0

    2010-09-28

    Gnome 桌面管理系統程式繫結:metacity、 nautilus、 gnomeprint、 gtksourceview、 gtop、 media-profiles、 totem、 wnck

    GnomePythonExtras

    Gnome

    2.25.3

    2009-02-15

    附加的 Gnome 繫結: libegg、 gda、 gtkmozembed、 gtkspell、 gksu、 gdl、 gtkhtml2

    gui2py

    WxPython (WxWidgets)

    0.9.3

    2013-08-26

    架構跟視覺化工具:GUI設計器、檢查器跟屬性編輯器,支援Python 2.5到Python 3.2;wxPython 2.8 “stable”、2.9 “classic”跟”phoenix” (py3k),功能有進階的python化的MVC控制(ListView、GridView、TreeView)使用list- 跟dict-之類的物件;遮罩跟日曆選擇器控制;常用對話框;流動佈局使用sizers跟基本的HTML;簡化的事件模型(類似JavaScript),可以放wxPython程式碼到應用程式中,現代化的PythonCard “fork” 大大地提昇。

    guidata

    Qt

    1.6.1

    2013-06-17

    基於Qt Python繫結模組PyQt4, guidata是一個可以有容易的資料及編輯跟顯示來產生圖形使用者介面的Python函式庫,它也對PyQt4提供小幫手跟應用程式開發工具。

    IronPython

    .NET/Mono

    2.7.4 2013-09-07

    (原來是 MS’) .NET 平台的Python,查看http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython 更多詳細資訊。

    Jython

    Java

    2.5.4rc1 2013-02-10

    Jython 是Python完整無縫的與Java平台整合之高級、動態、物件導向語言的實作,查看 http://www.jython.org 更多詳細的資訊。

    Kivy

    Windows, MacOSX, Linux, Android, iOS

    1.8.0 2014-01-30

    OpenGL ES 加速建構新的使用者介面的架構,Kivy支援每個平台原生的多點觸控、滑鼠模擬器、整合的虛擬鍵盤、rst描繪器…

    libavg

    MacOS, Linux

    1.8.0 2014-02-15

    嚴格來說不是 GUI 工具包,但是一高級多媒體架構可以允許建構豐富的多媒體的圖形使用介面,http://www.libavg.de

    PyFltk

    FlTk

     1.3.1  2012-02-19

    支援 Windows/Unix/Mac以及提供存取OpenGL功能,這表示他是快速、輕量的工具包。(Python 2 & 3)

    PyGame

    PyGame

    1.9.1

    2009-08-06

    主要是遊戲程式設計的引進,只支援一個視窗。(Python 2 & 3)

    Pyglet

    Windows, MacOS, Linux

    1.2alpha1

    2012-07-13

    大量使用OpenGL的跨平台視窗跟多媒體函式庫,現在只有Alpha版本。

    PyGObject

    Gtk?

    3.10.2

    2013-11-1

    PyGObject(又叫做PyGI),Python繫結GLib/GObject/GIO/GTK+,用來取代PyGtk,見PyGobject

    PyGtk

    Gtk

     2.24.0  2011-04-01

    PyGtk,pango、 atk、 gtk 及 libglade 的繫結,Gtk專案.上有很好的文件,包裝使用一些C的程式設計風格,注意:新手鼓勵透過PyGObject繫結使用GTK+3,而不是使用GTK+2的PyGTK,Windows使用者可能還是想繼續使用PyGTK直到有更多方便的安裝程式出版為止。

    pygir-ctypes

    GObject Introspection

    0.1.1  2011-03-29 使用ctypes的純Python GObject Introspection Repository (GIR)外覆程式,支援CPython >= 2.6、CPython 3.x, PyPy >= 1.4.0在有gobject introspection支援的所有平台上使用。

    PyGtk2Tk

    Tkinter

     0.2.0  2008-09-19

    PyGtk 用 Tkinter 包裝,它是使用Tkinter(Tk)但不用改變 PyGtk 的程式碼,只用在Python 2。

    PyGUI

    Cocoa / Gtk / Win32

     2.5.3  2011-07-16

    抽象的像python的 API 封裝不同的平台;可以在 MacOS X/Carbon 及 Unix/Gtk執行

    PyjamasDesktop

    Many

    使用 PyWebkitGtk 的完整的元件工具包來作困難吃力的工作,提供了MVC架構的”V”視圖。另外查看 Pyjamas

    PyKDE

    Qt / KDE

    Python KDE 函式庫的外覆

    PyQt

    Qt

     5.2  2014-01-07

    Python 的 Qt 應用程式發展架構的繫結(Python 2 & 3)

    PySide

    Qt

    1.2.1

    2013-08-16

    PySide專案提供Qt 跨平台應用程式跟UI架構的授權Python繫結。

    PyWebkitGtk

    Web Browsers

     1.1.8  2010-08-07

    PyWebkitGtkwebkit的 Python 繫結,包括 DOM 模型的處理、Javascript 的執行、外掛支援 (如 Flash) 及 (在 TODO 列表上) SVG 畫布的支援,是相當有威力且完善的應用發展,查看 PyjamasDesktop 有簡單使用的 API。

    Sugar

    OLPC XO with Linux

     0.98.5 2013-03-08

    共同教育軟體的使用者介面

    TkInter

    Tk

     TK version varies by Python release and platform

    Python “標準的” GUI 函式庫(Python 2 文件Python 3 文件Tk 8.5或以後的版本需要使用ttk (另外參閱Issue20565)

    Traits/TraitsUI

    Qt or Wx on Windows, MacOS, Linux

    4.0.0

    2013-12-03

    Traits/TraitsUI套件針對不同型態的物件藉著只專注在模型被檢視及提供預設的小工具來建置可升級且跨平台的GUI,它抽離實作,現在可以使用PyQt、Pyside或WxPython,在最簡單的範例裡,可以自動產生一個編輯(Traits基礎的)物件的使用者介面,對部份程式設計的使用者來說不需額外的程式碼,更複雜的使用裡,針對Traits-基礎的物件可以實作Model-View-Controller (MVC)設計模式。

    VTK

    many

     6.1.0 2014-01-22

    Visualization ToolKit (VTK) 是開放原始碼、免費的3D電腦繪圖軟體系統、影響處理及視覺化的工具包。

    Wax

    WxWidgets

     0.3.33 2006-03-17

    WxPython的一個外覆,較簡單並且更像 “pythonic”

    WxPython

    WxWidgets

     3.0.0.0  2013-12-25

    現在有支援 Windows/Unix/Mac – 察看 http://www.wxwidgets.org,在 ShowMeDo 的 wxPython tutorial videos 有寫一個繪圖應用程式

沒有作用/不再維護

Package Target

Latest version

Latest update date

Notes

AnyGui

many

 0.1.1 2002-02-08

(“Anygui 不再積極發展或支援”) 執行在很多GUI後端服務的單獨原始碼,這些服務包括很多本表所列的以及 ncurses

FXPy

FOX

 1.0.5 2002-04-02

FXPy是一個Python擴充模組提供跨平台FOX GUI函式庫一個介面,現在沒有在開發,但是最新的版本可以跟FOX 1.0及Python 2.2相容。

Lucid

Windows, GTK, MacOS

 0.1  SVN only

(2013年四月連結不見了)一個使用每個作業系統的原生GUI元件的抽象層跟聰明佈局的引擎,之前叫做 “Claro 架構”。

EasyGui

Tk

 0.96  2010-08-29

(有效日期2013/3/6 EasyGui 專案現在已關閉) EasyGUI 是很簡單的一個模組,很簡單的Python GUI 程式設計。

TkZinc

Tk extension

 3.2.2 2005-06-18

TkZinc 是Tk畫布的擴充,有透明、灰階及變形(沒用的網站消失)

PySWT

SWT

 0.0.3  2005-06-28

PySWT 是IBM Eclipse SWT 函式庫的Python繫結,提供 Python 一個跨平台的原生外觀的GUI,(Python 2.4) (沒有作用:網頁最後更新是2005

OcempGUI(Ocean Empire GUI)

Pygame

0.2.9 2008-05-10

基於Pygame用Python寫的一個小型GUI工具包,提供輔助功能的支援。(沒有作用:更新到2008

Nufox

XUL (many)

0.1.0 2005-10-13

Nufox 是一個 python XUL 工具包是由Twisted 網路架構及 Nevow基礎寫的,這個觀念是你不用寫XUL markup只要寫伺服端跨平台的 XUL 應用程式就可以,只需一點點的 javascript,其他的都可以舒服的用 python,(Python 2.3或2.4)(沒有作用:更新到2005

PyUi

OpenGL

 1.0 2003-08-17

OpenGL程式用來產生GUI的特殊GUI工具包。 (Python 2.2) (N沒有作用:最後更新2003)

PythonCard

WxWidgets

 0.8.2  2006-05-22

是一個架構也是GUI builder,可以在ShowMeDoPythonCard apps PythonCard tutorial videos含括 wxPython 程式碼 (沒有作用:最後更新2006)

XGui

XGui

 ?SVN?  2008-03-02

XGui 是一個使用C、C++及Python繫結的跨平台的元件集,真的支援在Gtk上的*nix及Win32上的Windows。(從2008開始程式碼無法下載)

PyPicoGUI

PicoGUI

 0.46  2003-11-18

含括在主要picoGUI版本的python 函式庫(網站從2004後就沒有任何活動

特定平台的架構

  • Package

    Target

    Latest version

    Latest update date

    Notes

    BeThon

    BeOS

     0.5.4  ? Python 2.6到BeOS的窗口,也是Bethon BeOS API介面函式庫。

    MacPython

    MacOS

     2.3.3 2004-04-02

    支援 OSX 及 OS9,見MacPython

    PyObjC

    MacOSX

    支援Mac上的 Cocoa Aqua GUIs

    PyMUI

    MorphOS

    0.7.0

    2013-12-27

    python的LGPL MagicUserInterface外覆程式,支援MorphOS 2.x。(Python 2.7)

    IronPython Studio

    Windows

     1.0  2007-12-10

    有與Visual Studio相同介面的IronPython 免費 GUI 實作。

    venster

    Windows

     0.72  2004-12-25

    Venster 是基於ctypes ffi函式庫的高度原生Windows GUI的Python工具包,Venster的目標是作為在標準的Win32 API下一個很輕量的外覆,使得它容易用純Python來寫靈巧的視窗應用程式。

    Win32All

    Windows

    熟知的組件名稱: PythonWin (UI)、 Win32Com ( COM/ActiveX)、 Win32 (一些API其他的部份)

    Ocean

    many

    0.2.3-r97 2007-04-02

    GUI 函式庫,只是Python “像python的 javax.swing”Model/View/Controller的表面,查看 http://ocean.sourceforge.net/

    PyScripter

    Windows

    2.5.1

    2012-03-19

    使用Pytjon及Delphi發展的 OpenSource IDE

GUI 設計工具及 IDE

  • IDE

    Target

    Latest version

    Latest update date

    Notes

    Autoglade

    PyGtk

     0.5  2009-07-27

    Glade GUI定義自動建構 GUI 應用程式, GPL

    BlackAdder

    PyQt

    1.0 2003-09-11

    Commercial, $50-400(網站無法使用,Demo版可以在此找到:https://archive.org/details/tucows_332773_BlackAdder)

    BoaConstructor

    WxPython

     0.6.1 2007-07-05

    GPL, Alpha, 但開始變得成熟用來偵錯wxPython程式碼!

    The Eric Python IDE

    PyQt

    6 (21.1) 2021-01-02

    GPL,Eric是一個自由的軟體整合式開發環境(python gui ide),主要為開發Python和Ruby語言編寫的程式而設計。歷史上某個時期中,Eric4是這款軟體針對Python 2的變種,而Eric5則針對Python 3。但自從Eric6發布以後,兩者均由同一份代碼所支援。

    FarPy GUIE

    WxPython

     0.5.5  2007-04-14

    免費,開放原始碼,同時也支援 wxRuby 及 wxPerl 。

    gui2py

    WxPython

    視覺化的GUI設計器、檢查器及屬性編輯器(可內嵌)PythonCard “fork”. LGPL3。

    Gazpacho

    PyGtk

     0.7.2 2007-07-29

    GPL,以視覺化的方法為你的GTK+程式建構一圖形使用者介面(GUI)。

    Glade

    PyGtk

     3.16.1  2013-12-18

    GPL,Glade是一個RAD工具,針對GTK+工具包及GNOME桌面環境允許快速且容易的使用者介面的開發。

    GWiz

    Tix

    有整合式的GUI buiilder的GUI 引擎,需要 Alpha testers。在lwickjr的python維基頁面上檔案已經不見 wiki page

    IronPython Studio

    Windows Application

    與Visual Studio有相同介面的IronPython實作。

    Komodo

    TkInter

    Commercial

    NodeBox

    MacOSX, Win, Linux

    3.0.38

    2014-01-24

    使用Python程式碼來建構2D的視覺應用程式。

    PAGE

    Tkinter, Tix

    6.0.1 2020-12-17

    PAGE是一個跨平台的拖拉 GUI 產生器,做得很像 Visual Basic,可以讓人很容易地建立 Python GUI 視窗有 Tk 跟 ttk 元件供選擇,這款 python gui產生器看起來越來越好用。

    pygubu

    TkInter

    0.9.2

    2013-11-05

    來自Glade的靈感,GPL TkInter GUI產生器(匯出XML “.ui”檔案)跟RAD工具inspired by Glade.

    PyScripter

    Windows

    2.5.1

    20120319

    使用Python跟Delphi開發的MIT開放原始碼IDE,見PyScripter。(Python 2 & 3)

    PythonCard

    WxWidgets

     0.8.2  2006-05-22

    是一個架構也是GUI builder,可以在ShowMeDo的 PythonCard apps PythonCard tutorial videos含括 wxPython 程式碼

    PythonToolkit (PTK)

    Windows/Linux/Mac

    13.01

    2013-03-07

    python的一個互動式環境,適合使用不同的GUI工具包(wxPython, TkInter, pyGTK, pyQT4 跟 PySide)於互動式的GUI程式設計

    PythonWorks

    TkInter

     1.3  2002/11/25

    PythonWorks 不再被發展,他們仍然支援現有的客戶,但不再授權給新客戶。

    rad2py

    gui2py & WxPython

    Rapid Application Development platform for python (including editor, debugger, visual designer, unit tests, etc.). GPLv3. Alpha.

    Qt Designer

    PyQt

    一種QT的表單設計工具有 Commercial 及 GPL 兩種版本,可以用在 Eric3 及 Eric4。

    WxDesigner

    WxPython

    Commercial Student EUR 29, 單一使用者 EUR 129

    WxGlade

    WxPython

    MIT License, Alpha.

    xrope

    Python Tkinter

    有完整的GUI、 跨瀏覽器、檔案管理程式碼,Licensed under the GPL。

連結

CameronLaird的Python GUI個人筆記 http://phaseit.net/claird/comp.lang.python/python_GUI.html 包含了25個以上關於python連結的GUI的工具包跟技術的連結。

其他的地方可以看Thinki的 PythonGuishttp://sensei.co.il/python/ui.html

Opendocs 之前有一些Python的Qt程式設計可以線上閱讀,但是該網域的擁有權好像已經移轉,有一本關於Qt3的 PyQt 的書籍為 Boudewijn Rempt所著的 GUI Programming with Python: QT Edition 還有在, Mark Summerfield所著的最新的一本書 PyQt4, Rapid GUI Programming with Python and Qt 現在還有印刷可買線上也有 “宣傳版”,更詳細的資料可以在 PyQt Wiki 找到。

http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Python – 描述幾個IDE及GUI Builders 的維基文章。

編者筆記

上述的列表在新增加新的的架構或工具時應用字母次序來排列,請參考這一點。

目前這一節還不完整,假如你沒有找到你要的資訊請不要太失望,但也請你貢獻可以新增的任何資訊,任何關於GUI及開發工具有固定的格式的資訊可以讓他們更容易地比較是有用的 (查看 WebProgrammingTemplateWebProgrammingTemplateHelp),有些分類:直接支援的元件、 附加的元件、佈局管理器等等,或許在ChoosingGuiToolkits 有對每個工具包可以回答你的問題。

參考書籍:

深入淺出 Python

想要找翻譯 公司:
羅賽塔上海翻譯公司 – 第一家全外資的上海翻譯公司
華碩翻譯社
天成翻譯社

相關文章:
什麼是403禁止的錯誤以及如何解決(8個解決方案的解釋)

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

2 則留言

  1. Looking for professional graphic designing for your business? Graphonix is a professional graphic designer in Meerut ( India) that provides you world’s best graphics for your business which helps you to generate trust with your customers at a first impression.
    https://www.graphonix.com/


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *