這一篇是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
所有主要的Web瀏覽器
1.6.6 2021-11-30 只使用Python的全端網站應用程式,免費線上拖拉的GUI建置器,有內建(免費增值的模式)主機給應用程式使用
所有主要的Web瀏覽器
0.13 2021-12-11 有更快且簡易的方式新增多功能的圖形界面及網路能力到程式
所有主要的Web瀏覽器
0.1.5
2020-10-14
一個物件導向的高階 Python Web 架構,不需要前端的程式設計。
所有主要的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
Windows, macOS, Linux
0.94 2019-05-26 Tkinter 簡單直觀的裝飾器。 正在積極開發中,專為教育目的而設計,文件很多且功能豐富!
AVC
many
0.8.3 2011-02-15 完全自動的連結繪圖介面元件及應用程式變數。
Dabo
0.9.12 2013-06-12 Dabo 是一個三層式跨平台的應用發展架構,適用Python 頂上的 wxPython GUI 工具包寫成 – 察看 http://dabodev.com/
Qt
1.0.15
2013-08-27
寫GUI程式碼時用於建構表單對話框/小工具來編輯不同型態的參數的小型Python模組
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
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” 大大地提昇。
Qt
1.6.1
2013-06-17
基於Qt Python繫結模組PyQt4, guidata是一個可以有容易的資料及編輯跟顯示來產生圖形使用者介面的Python函式庫,它也對PyQt4提供小幫手跟應用程式開發工具。
.NET/Mono
2.7.4 2013-09-07 (原來是 MS’) .NET 平台的Python,查看http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython 更多詳細資訊。
Java
2.5.4rc1 2013-02-10 Jython 是Python完整無縫的與Java平台整合之高級、動態、物件導向語言的實作,查看 http://www.jython.org 更多詳細的資訊。
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。
1.3.1 2012-02-19 支援 Windows/Unix/Mac以及提供存取OpenGL功能,這表示他是快速、輕量的工具包。(Python 2 & 3)
1.9.1
2009-08-06
主要是遊戲程式設計的引進,只支援一個視窗。(Python 2 & 3)
Windows, MacOS, Linux
1.2alpha1
2012-07-13
大量使用OpenGL的跨平台視窗跟多媒體函式庫,現在只有Alpha版本。
Gtk?
3.10.2
2013-11-1
PyGObject(又叫做PyGI),Python繫結GLib/GObject/GIO/GTK+,用來取代PyGtk,見PyGobject
Gtk
2.24.0 2011-04-01 見PyGtk,pango、 atk、 gtk 及 libglade 的繫結,Gtk專案.上有很好的文件,包裝使用一些C的程式設計風格,注意:新手鼓勵透過PyGObject繫結使用GTK+3,而不是使用GTK+2的PyGTK,Windows使用者可能還是想繼續使用PyGTK直到有更多方便的安裝程式出版為止。
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支援的所有平台上使用。 Tkinter
0.2.0 2008-09-19 PyGtk 用 Tkinter 包裝,它是使用Tkinter(Tk)但不用改變 PyGtk 的程式碼,只用在Python 2。
Cocoa / Gtk / Win32
2.5.3 2011-07-16 抽象的像python的 API 封裝不同的平台;可以在 MacOS X/Carbon 及 Unix/Gtk執行
Many
使用 PyWebkitGtk 的完整的元件工具包來作困難吃力的工作,提供了MVC架構的”V”視圖。另外查看 Pyjamas
Qt / KDE
Python KDE 函式庫的外覆
Qt
5.2 2014-01-07 Python 的 Qt 應用程式發展架構的繫結(Python 2 & 3)
Qt
1.2.1
2013-08-16
Web Browsers
1.1.8 2010-08-07 PyWebkitGtk 是webkit的 Python 繫結,包括 DOM 模型的處理、Javascript 的執行、外掛支援 (如 Flash) 及 (在 TODO 列表上) SVG 畫布的支援,是相當有威力且完善的應用發展,查看 PyjamasDesktop 有簡單使用的 API。
OLPC XO with Linux
0.98.5 2013-03-08 共同教育軟體的使用者介面
Tk
TK version varies by Python release and platform Python “標準的” GUI 函式庫(Python 2 文件, Python 3 文件) Tk 8.5或以後的版本需要使用ttk (另外參閱Issue20565)
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電腦繪圖軟體系統、影響處理及視覺化的工具包。
0.3.33 2006-03-17 WxPython的一個外覆,較簡單並且更像 “pythonic”
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 |
many |
0.1.1 | 2002-02-08 |
(“Anygui 不再積極發展或支援”) 執行在很多GUI後端服務的單獨原始碼,這些服務包括很多本表所列的以及 ncurses |
|
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 架構”。 |
Tk |
0.96 | 2010-08-29 |
(有效日期2013/3/6 EasyGui 專案現在已關閉) EasyGUI 是很簡單的一個模組,很簡單的Python GUI 程式設計。 |
|
Tk extension |
3.2.2 | 2005-06-18 |
TkZinc 是Tk畫布的擴充,有透明、灰階及變形(沒用的網站消失) |
|
SWT |
0.0.3 | 2005-06-28 |
PySWT 是IBM Eclipse SWT 函式庫的Python繫結,提供 Python 一個跨平台的原生外觀的GUI,(Python 2.4) (沒有作用:網頁最後更新是2005) |
|
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) |
OpenGL |
1.0 | 2003-08-17 |
OpenGL程式用來產生GUI的特殊GUI工具包。 (Python 2.2) (N沒有作用:最後更新2003) |
|
0.8.2 | 2006-05-22 |
是一個架構也是GUI builder,可以在ShowMeDo的 PythonCard apps PythonCard tutorial videos含括 wxPython 程式碼 (沒有作用:最後更新2006) |
||
XGui |
XGui |
?SVN? | 2008-03-02 |
XGui 是一個使用C、C++及Python繫結的跨平台的元件集,真的支援在Gtk上的*nix及Win32上的Windows。(從2008開始程式碼無法下載) |
PyPicoGUI |
0.46 | 2003-11-18 |
含括在主要picoGUI版本的python 函式庫(網站從2004後就沒有任何活動) |
特定平台的架構
-
Package
Target
Latest version
Latest update date
Notes
BeOS
0.5.4 ? Python 2.6到BeOS的窗口,也是Bethon BeOS API介面函式庫。 MacOS
2.3.3 2004-04-02 支援 OSX 及 OS9,見MacPython
MacOSX
支援Mac上的 Cocoa Aqua GUIs
MorphOS
0.7.0
2013-12-27
python的LGPL MagicUserInterface外覆程式,支援MorphOS 2.x。(Python 2.7)
Windows
1.0 2007-12-10 有與Visual Studio相同介面的IronPython 免費 GUI 實作。
Windows
0.72 2004-12-25 Venster 是基於ctypes ffi函式庫的高度原生Windows GUI的Python工具包,Venster的目標是作為在標準的Win32 API下一個很輕量的外覆,使得它容易用純Python來寫靈巧的視窗應用程式。
Windows
熟知的組件名稱: PythonWin (UI)、 Win32Com ( COM/ActiveX)、 Win32 (一些API其他的部份)
many
0.2.3-r97 2007-04-02 GUI 函式庫,只是Python “像python的 javax.swing”Model/View/Controller的表面,查看 http://ocean.sourceforge.net/
Windows
2.5.1
2012-03-19
使用Pytjon及Delphi發展的 OpenSource IDE
GUI 設計工具及 IDE
-
IDE
Target
Latest version
Latest update date
Notes
0.5 2009-07-27 從Glade GUI定義自動建構 GUI 應用程式, GPL
BlackAdder
1.0 2003-09-11 Commercial, $50-400(網站無法使用,Demo版可以在此找到:https://archive.org/details/tucows_332773_BlackAdder)
0.6.1 2007-07-05 GPL, Alpha, 但開始變得成熟用來偵錯wxPython程式碼!
6 (21.1) 2021-01-02 GPL,Eric是一個自由的軟體整合式開發環境(python gui ide),主要為開發Python和Ruby語言編寫的程式而設計。歷史上某個時期中,Eric4是這款軟體針對Python 2的變種,而Eric5則針對Python 3。但自從Eric6發布以後,兩者均由同一份代碼所支援。
0.5.5 2007-04-14 免費,開放原始碼,同時也支援 wxRuby 及 wxPerl 。
視覺化的GUI設計器、檢查器及屬性編輯器(可內嵌)PythonCard “fork”. LGPL3。
Gazpacho
0.7.2 2007-07-29 GPL,以視覺化的方法為你的GTK+程式建構一圖形使用者介面(GUI)。
3.16.1 2013-12-18 GPL,Glade是一個RAD工具,針對GTK+工具包及GNOME桌面環境允許快速且容易的使用者介面的開發。
有整合式的GUI buiilder的GUI 引擎,需要 Alpha testers。在lwickjr的python維基頁面上檔案已經不見 wiki page
Windows Application
與Visual Studio有相同介面的IronPython實作。
Commercial
MacOSX, Win, Linux
3.0.38
2014-01-24
使用Python程式碼來建構2D的視覺應用程式。
Tkinter, Tix
6.0.1 2020-12-17 PAGE是一個跨平台的拖拉 GUI 產生器,做得很像 Visual Basic,可以讓人很容易地建立 Python GUI 視窗有 Tk 跟 ttk 元件供選擇,這款 python gui產生器看起來越來越好用。
0.9.2
2013-11-05
來自Glade的靈感,GPL TkInter GUI產生器(匯出XML “.ui”檔案)跟RAD工具inspired by Glade.
Windows
2.5.1
20120319
使用Python跟Delphi開發的MIT開放原始碼IDE,見PyScripter。(Python 2 & 3)
0.8.2 2006-05-22 是一個架構也是GUI builder,可以在ShowMeDo的 PythonCard apps PythonCard tutorial videos含括 wxPython 程式碼
Windows/Linux/Mac
13.01
2013-03-07
python的一個互動式環境,適合使用不同的GUI工具包(wxPython, TkInter, pyGTK, pyQT4 跟 PySide)於互動式的GUI程式設計
1.3 2002/11/25 PythonWorks 不再被發展,他們仍然支援現有的客戶,但不再授權給新客戶。
Rapid Application Development platform for python (including editor, debugger, visual designer, unit tests, etc.). GPLv3. Alpha.
Qt Designer
一種QT的表單設計工具有 Commercial 及 GPL 兩種版本,可以用在 Eric3 及 Eric4。
Commercial Student EUR 29, 單一使用者 EUR 129
MIT License, Alpha.
Python Tkinter
有完整的GUI、 跨瀏覽器、檔案管理程式碼,Licensed under the GPL。
連結
CameronLaird的Python GUI個人筆記 http://phaseit.net/claird/comp.lang.python/python_GUI.html 包含了25個以上關於python連結的GUI的工具包跟技術的連結。
其他的地方可以看Thinki的 PythonGuis 及 http://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及開發工具有固定的格式的資訊可以讓他們更容易地比較是有用的 (查看 WebProgrammingTemplate 及 WebProgrammingTemplateHelp),有些分類:直接支援的元件、 附加的元件、佈局管理器等等,或許在ChoosingGuiToolkits 有對每個工具包可以回答你的問題。
參考書籍:
想要找翻譯 公司:
※羅賽塔上海翻譯公司 – 第一家全外資的上海翻譯公司
※華碩翻譯社
※天成翻譯社
相關文章:
※什麼是403禁止的錯誤以及如何解決(8個解決方案的解釋)
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/