这一篇是GUI Programming in Python中译版本。
Python 有一大堆的GUI架构(或工具包)可以用,从 Tkinter (Python 本身内建,使用 Tk) 到一些其他跨平台的解决方案,以及系结于特定平台(也叫 “原生”)的技术。
知名的资讯作家蔡学镛虽然在GUI的开发瓶颈对Tk的gui设计不满意曾说:“像Tk这样的GUI套件往往太僵化,且不美观,做出来的GUI效果并不吸引人,甚至和OS的GUI差异太大,画面反而看起来显得诡异。”但也提到“尽管不合适,也只好将就着使用。”或许你可以在下面的资原中找到答案也不一定。
[adsense]
跨浏览器架构
-
Package
Target
Latest version
Latest update date
Notes
所有主要的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
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/Project/index.html 更多详细的资讯。
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程式码!
5.4.2 2014-03-09 GPL,完整功能的Python跟Ruby编辑器及IDE,整合了高度灵活的Scintilla编辑器控制。(Python 2 & 3版)
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
4.2.1 2014-02-21 Windows、Mac跟Linux的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 有对每个工具包可以回答你的问题。
参考书籍: