简单问题:
我不是在寻找一场宗教战争,我只是希望能够很好地处理Python GUI API方面的所有内容。
答案 0 :(得分:15)
答案 1 :(得分:11)
我使用过Tkinter和wxPython。 Tkinter非常基础,不使用本机小部件。这意味着Tkinter应用程序在任何平台上看起来都一样 - 这可能听起来很吸引人,但在实践中,这意味着它们在任何平台上看起来都很丑: - /尽管如此,它很容易使用。我在学习时发现Thinking in Tkinter非常有用,因为我之前从未做过任何GUI编程。但是,如果您熟悉框架和布局算法以及按钮和绑定等内容,则可以跳过该步骤。
你可以用Tix扩充Tkinter(但要注意,Tix与py2exe不兼容)。另请查看Python Megawidgets,它使用Tkinter基础构建一些更高级的控件。
最后,Tkinter在shell中表现得很好:你可以启动解释器,执行“import tkinter”,“tk = tkinter.Tk()”等操作,并以交互方式构建GUI(并且它会响应)。 (我认为如果你使用IDLE,这不起作用)
wxPython看起来更好看,并且具有更大范围的控件。它是跨平台的(虽然在我的Mac上看起来有点挑剔)并且在每个平台上使用本机控件。不过,这有点令人困惑。它还附带了一个演示应用程序,可以展示其大部分功能,并为您提供实验的测试平台。关于wxPython的一些具体想法:
答案 2 :(得分:4)
如果您对Qt有经验或兴趣,那么PyQt非常出色。
答案 3 :(得分:3)
大多数python GUI API都是最常见的c / c ++ GUI API的包装器。你有一个gtk的python包装器,一个用于qt的python包装器,一个用于.NET的python包装器等等。
所以真的取决于你的需求。如果您正在寻找在Linux,Mac和Windows上绘制外观小部件的最简单方法,那么请使用wxPython(WX Widgets的python包装器)。如果跨平台不是您的需求之一,那么其他库可能更有用。
答案 4 :(得分:3)
我不会发布您的选项列表,而是会发表我的拙见:
我爱上了wxPython。
我在T ++时代已经使用过C ++和Tk的Qt,但真正让我喜欢wxPython的是你得到它的演示。在演示中,您可以浏览框架中所有不同的小部件框架等,查看源代码并实际查看它在运行时的外观。
我在构建和安装Linux版本时遇到了一些问题,但现在我已经可以使用它了,所以我一直都在使用它。我已经将wxPython用于小型数据分析应用程序,我编写了几个与比较测试结果,合并源代码等相关的内部工具。
答案 5 :(得分:3)
我发现此链接很长一段时间:http://www.awaretek.com/toolkits.html。它建议根据您的标准进行调整。对我来说,它总是建议wxPython。无论如何,它会为您提供各种工具包的分数。什么是适合我的可能不适合你。但它会根据您的标准为您提供所有得分,所以如果您因某些原因不喜欢顶级工具包,您可以看到哪些最接近您的标准。
QT / GTK / WxWidgets(以前称为wxWindows)似乎是最成熟的跨平台GUI工具包之一。唯一的问题是没有安装Python的默认安装,因此您可能必须编译库。如果你想要一些没有安装的东西只需要运行,那么请使用TKInter,因为正如前面提到的那样,它默认安装在Python上。
无论如何,我的标准是关于易用性的9,关于文档/窗口小部件成熟的10个,关于安装基础的10个,关于gui代码生成器的5个,关于windows / linux的本地外观和10的标准,以及最后的1和5二,我对Mac OSX并不大(即使这里有一个10,它建议使用wxpython)。
答案 6 :(得分:3)
PythonCard非常易于使用。这就是我的建议。
这是他们的写作:
PythonCard是一个GUI构建工具包 用于构建跨平台桌面 Windows,Mac OS X和Windows上的应用程序 Linux,使用Python语言。
PythonCard的座右铭是“简单的事情 应该是简单而复杂的事情 应该是可能的。“
如果你愿意,PythonCard适合你 快速开发图形应用程序 并且只需最少的努力 和编码。 Apple的HyperCard就是其中之一 我们的灵感;很简单 强大。
PythonCard使用wxPython。如果你是 已经熟悉wxPython了 认为PythonCard是一种更简单的方法 用a做wxPython程序 已经有很多样品和工具 适合您复制和子类 和工具,以帮助您建立 跨平台应用程序。
答案 7 :(得分:2)
EasyGUI与其他GUI不同,因为EasyGUI不是事件驱动的。它允许您以传统的线性方式进行编程,并在需要时为简单的输入和输出设置对话框。如果您尚未学习用于GUI编程的事件驱动范例,EasyGUI将使您能够立即高效地完成基本任务。稍后,如果您希望转换到事件驱动的GUI范例,您可以使用更强大的GUI包,例如anygui,PythonCard,Tkinter,wxPython等。
答案 8 :(得分:2)
WX在Mac上存在问题。
我看过这里,因为我想要一个事件驱动的GUI API来做一些Python的东西。我作为MatPlotLib的一部分在我的Mac上安装了wx,但是它无法正常工作。它不会从键盘输入。我已经在三个不同的Mac操作系统上安装了三次,虽然它第一次运行,但另外两次我遇到了这个问题。
这个版本我正在使用Enthought的发行版,所以不需要安装。当我单独安装它时,有很多依赖安装,它是一个安装试用版。
从我在这里读到的内容,我会给Tkinter一个机会,因为这需要简单和跨平台,但我想我会和你分享以上内容。我喜欢Mac OS的原因有很多,但是python工具在Windows(以及其他Linux)上的安装要容易得多。我只是想在这里给出Mac视角。
答案 9 :(得分:1)
我喜欢wxPython或Tk。
Tk附带标准的Python发行版,因此您无需安装任何其他内容。
wxPython(wxWigets)看起来更强大,看起来更好。它也适用于跨平台(虽然不完美,因为它在差异系统类型上使用不同的底层图形API)
答案 10 :(得分:1)
我更喜欢PyGTK,因为我是一个GNOME人。使用PyGTK对我来说感觉非常pythonic。代码组织感觉一致,文档干净透彻,并且它是一个非常容易习惯的工具包(除了可能的Treeviews)。
答案 11 :(得分:1)
不存在易于使用的Python GUI创建器。真的很棒,考虑到像AutoIt和AutoHotkey这样的小脚本语言使用GUI制造商非常简单。来吧,Python粉丝,你不能做得更好吗?
答案 12 :(得分:0)
我已经和wxPython合作了几年了,我非常喜欢它。关于wxPython的最好的事情是UI在它运行的不同平台上感觉是原生的(在Windows和Linux上非常出色但在OS / X上却不是很好)。
API缺乏一致性,但您很快就会习惯它。
你可以查看Testuff(无耻的插件,因为它是我自己的产品)来了解wxPython可以做些什么(虽然我必须说,付出了相当多的努力)。
答案 13 :(得分:0)
wxPython,我也假设PyGTK,可以使用wxGlade来帮助你设计你将创建的大多数UI。这是一个很大的优点。在准备好之前,您不必学习如何手动编写GUI代码。在我对wxPython如何处理手工编码工作感到满意之前,我直接从wxGlade制作了几个GUI程序。
PyQt有一个类似的图形布局设备,但我从来没有好运过PyQt正确编译。还缺少教程和文档,展示了如何创建最终的Python代码;我发现的许多文档都提到了Qt的C ++版本。
Tkinter适用于快速和脏的程序,但实际上,如果使用wxGlade,使用wxPython制作程序可能会更快。至少,您可以使用wxGlade向客户端显示程序的直观表示,而不是花时间手动编写“虚拟”程序。
答案 14 :(得分:0)
有特定于python的gui-api,如kivy(后继者或pymt),pygui(基于pyrex),pyui和nufox,它们与wxpython,pyqt,pygtk和tkinter等更强大的工具包无法比较。 / p>
它们只是额外的可选工具。
他们唯一独特的是这些是特定于python的api,就像有prima(perl-specific api)和鞋子(ruby-specific api)一样。它有助于我们理解当tk是基于tcl的api端口(其他基于c和c ++)时,这些api专门针对相应的三种脚本语言完成。
其中,kivy是最强大的,而pygui的编码被提到非常类似python,pyui最不健壮但值得尝试,所有这些都应该是可移植的,无论python或基于python的应用程序去哪里。
然后是jpype,它是一个可以与jython和pydev一起使用的工具包,实际上是在python / jython-interface下定制的java的日本。