有没有一种用于开发Python GUI应用程序的标准框架?


20

有很多使用Python编写GUI应用程序的框架。但是,有没有一个关键的标准框架?例如,我们在Visual Studio上有一捆.NET / C#。

我也在其他角度思考。将来,如果我接受Python程序员工作的面试,将考虑使用哪个GUI框架?

我也想知道,没有集成GUI和Python语言的IDE。口味选择不错,但选择过多会分散注意力。


不,没有“标准”。.NET未标准化。没有为.NET编写标准的标准机构,而是 C#的标准:ecma-international.org/publications/standards/Ecma-334.htm。也许“标准”不是您的意思?
S.Lott

@ S.Lott:很抱歉这个令人困惑的术语。我的意思有所不同。对于.NET应用程序,Visual Studio是最好的“多合一”工具,其中包括GUI构建器和其他功能。很少有人寻找VS.NET的替代产品。我的意思是类似的意思。搜索完整的多合一解决方案的任何Python IDE都将结束。
RPK

您是否在询问IDE(例如Visual Studio)?如果是这样,那么“框架”是问题中的错误词。请阐明您的要求。
S.Lott

@ S.Lott:不,我不是在问Visual Studio。让我澄清一下。以ASP.NET为例。它是一个框架,但是可以很好地集成到Visual Studio IDE中。您在中心表上拥有所有可用工具。Python有什么用吗?
RPK

Visual Studio是一个IDE ==所有开发工具都集中在一个地方。“我不问Visual Studio”与“您在中心表上具有所有可用工具。Python是否有用?”完全相反。您是在询问IDE(Visual Studio的Python版本)还是在询问框架本身。或者,也许您正在同时询问这两个问题。很难弄清楚问题是什么。请更新问题以非常清楚地说明您想要什么。
S.Lott

Answers:


12

如果您喜欢编写所有样板代码,则可以用Python编写Win32 API GUI应用程序:PyWin32项目

就个人而言,我喜欢wxPython。它是跨平台的(在Linux和Windows上都完全受支持),并且已经存在了相当长的一段时间...不错的支持基础,以及大量的文档/示例代码。如果要使用它,请看一下BoaConstructor。那就是wxPython的IDE(或者更好的说法是用wxPython编写的IDE)。值得一提的是,它是我遇到的唯一一个专门针对Python的RAD IDE ,请保存Qt UI编辑器(Qt的UI编辑器可用于C ++和PyQT)。

正如Peter在回答中提到的那样,Tk是较旧的Python应用程序的事实上的GUI,但对于最终用户而言,它们确实看起来并不那么漂亮。它有一些扩展,使其看起来更好一些,并提供了一些样式UI,但是除非您维护的是较旧的GUI应用程序,否则我建议您不要打扰它。

pyGTK,也已经提到,将是另一个不错的选择。它也跨平台,尽管我没有Windows上GTK开发的任何个人经验。IMO,PyQT是一个更好的选择-我认为使用Qt库创建的GUI在外观和功能上都优于GTK。我还发现Qt的信号/插槽事件机制更易于使用。YMMV。

确实没有针对Python GUI开发的标准,至少我没有看到过,但是与我合作多年的其他Python开发人员中,他们向我建议wxPython和PyQT比其他任何人都多工具包。老实说,我不确定是否有大量的Python GUI开发职位。多年来,我完成的大多数Python开发都是在服务器端进行的,但这并不是说现在没有各种各样的公司希望为其GUI应用程序采用开源路线。


如果您花些时间做Tkinter应用程序,就可以使其看起来完全可以接受,通常与本机应用程序几乎没有区别。我会同意的,但是wxPython看起来没有任何调整就更好了。就我个人而言,我仍然更喜欢Tkinter,因为它对大多数人来说看起来足够好,而且我的工作效率比使用wxPython高。
布莱恩·奥克利

如果您打算开发l10n / i18n应用程序,则Tk(Tkinter)不支持完整的Unicode(例如:脚本整形)。
user.dz 2014年

12

Tk曾经是标准,但是可以说它过于简单和丑陋。然后Qt变得非常流行。Gtk也是可能的,它涵盖了Linux平台上的收藏夹。

但是你是对的,真的没有脑筋急转弯的答案。毕竟,过度选择在开源世界中很普遍。


4
我选择Qt只是因为它看起来比Gtk好
TheLQ 2011年

1
+1为全面的答案。Qt非常好用且功能强大,并且提供了两个绑定(在许可方面有效)。
ChristopheD

在Windows上,它不再是丑陋的查找。不过,我不喜欢您必须编写什么样的代码。代码难看。外观纯属本地,而且相当合理。
沃伦·P

5

没有“标准”,我同意-过多的选择是一种痛苦。至于用于Python GUI的集成“双向工具” IDE,我也想知道为什么那里似乎没有任何东西-也许是因为有如此之多的GUI工具包,没有人愿意为其中之一投资IDE。他们。

话虽如此,带有P3k的PyQt 4.7将为您提供出色的GUI(以及许多其他强大的功能)。请参阅http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/introduction.html- “这是PyQt 4.8.4的参考指南。PyQtv4是Qt v4的一组Python绑定来自诺基亚的应用程序框架。”

PyQt被广泛使用,并且上面有一些不错的书:请参见 http://www.qtrac.eu/pyqtbook.html “使用Python和Qt进行快速GUI编程”(书已经过时了-需要更新对于P3k)。

PyQt存在2个严重问题:

1)它具有一些明显的“非pythonic”特性,只是C ++ Qt库的一个薄包装。但我建议使用P3k-PyQt 4.7,因为“最新,最出色”的软件包中已解决了一些问题。看看这篇文章:

PyQt设计问题

2)对于商业用途,PyQt和Qt的许可费用都很高。

PyQt的替代方案是诺基亚的PySide,这是Qt的另一个Python包装程序,它是完全开源的(尽管其中不包括Qt许可)。

从市场角度了解很多Qt并不是一件坏事,而且您会从PyQt那里了解到这一点,因此,如果您要决定在一个GUI平台上成为专家,我会认真考虑一下(或PySide)。 。

无论您选择什么,我都建议大部分情况下避免使用tkinter,即使它在Python中是“开箱即用”的,因为它的功能非常有限,而且IMO具有粗糙,过时的外观。

高温超导


3

pyGTK多产。它非常易于使用,并且使GUI看起来还不错。


社区有多富裕?答案多快到达论坛?
RPK

1
@RPK,我不知道,我从来不需要寻求帮助,一切都很容易使用。
dan_waterworth 2011年

我不确定“多产”是否正确。“丰产后代,幼果,果实等;高产:多产的梨树”可能是“受欢迎的”或“很棒的”。
S.Lott

@ S.Lott,多产:“类似地产生结果或大量工作”。(第二个警告定义)。“服务于产生;成果丰硕;活跃;作为一个多产的大脑;对邪恶的多产的争议。” (韦伯斯特修订无删节词典(1913 + 1828))
dan_waterworth 2011年

多产,如“ pyGTK产生大量应用程序?” 似乎紧张。人们产生应用。pyGTK可能是一个流行的基础,但它似乎不像生产者。
S.Lott

0

Gtk3是非常成熟的GUI框架。它具有本机Python绑定(GObject自省)和大量文档。如果您正在做很多GUI,请考虑使用Anjuta。Anjuta具有拖放界面,可轻松设置小部件。

WxWidgets相当不错,但是没有像Anjuta一样为Gtk动态生成Python回调的简单方法。

现在不推荐使用PyGtk,而推荐使用Gtk3到Python的绑定(GObject自省)

PyQt还是Python GUI的播放器,但是它没有一个庞大的社区。

BoaConstructor的维护时间更长,使用起来很愚蠢。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.