wxPython或Tkinter的GUI设计器好用的IDE

43

我有一点使用Python开发小型命令行应用程序的经验。我希望开始学习使用Python开发GUI。从Python可用的GUI工具包中,我最倾向于使用wxPythonTkinter
但是,我不想总是自己编写所有GUI代码。

这些工具包中是否有任何好的GUI IDE?它可以是收费的或非开源的。

8个回答

33

我只会讨论WxPython,因为它是我唯一有经验的工具包。TkInter适合编写小程序(不需要GUI设计器),但并不适用于大型应用程序的开发。

  • wxFormBuilder非常好用:它生成必须在程序中加载的.XRC文件,并且可以在使用时通过子类化生成.py文件。

  • DialogBlockswxDesigner是两个商业软件,可以直接生成Python代码。 我没有测试过这些软件,因为它们的价格较高。

  • wxGlade我认为对于大型程序来说还不够成熟,但值得一试。

尝试了所有这些后,我意识到它们都有缺点,没有什么比在编辑器中编写GUI更好。问题是学习曲线较长。但是,您将比使用GUI设计器更快,并且您的代码将更加灵活。

查看此用WxPython编写的主要应用程序列表。 您可能会发现它们都没有使用GUI设计器,这一定有原因。

您随后就会理解gs的说法:要么切换到PyQt,要么手动编写应用程序。 我曾经查看过Qt Designer,认为这正是我需要的。不幸的是,PyQt存在一些许可限制。


4
你如何定义“大型应用程序开发”,并认为tkinter为什么不适合?虽然我从未将其用于超过百万行的应用程序,但我认为它的扩展性与wxPython差不多。 - Bryan Oakley

16

这可能并不是直接回答您的问题,但我选择了PyQt,因为wxPython没有好的UI设计工具。

显然,你要么手动编写GUI,要么切换到PyQt。

由于Nokia和Riverbankcomputing无法就LGPL解决方案达成一致,Nokia决定构建自己的绑定库:PySide


3
+1 Qt Designer 是让我不那么讨厌 UI 设计师的程序。此外,PyQt 绑定似乎更符合 Python 编程风格,而 wx 绑定似乎太过于展示 C++ 的一些细节(例如整数事件/动作 ID)。另一个要点是,使用生成的代码和在运行时加载的资源文件大致相同。而且生成的代码非常整齐,几乎就是你自己写的样子。 - millimoose
1
PyQt是否支持Win/Mac/Linux的本地外观和感觉? - Alix Axel
@eyze: 部分地使用了。在 Mac 上,它使用 Carbon 元素(他们正在将其移植到 Cocoa……);在 Win 上,他们正在从自定义元素(本机外观和感觉)切换到真正的本机小部件;在 Linux 上,他们绘制自定义元素,但可以为系统上所有 Qt 应用更改外观。PyQt 的另一个优点是它的库,它不仅是 GUI 框架。 - Georg Schölly
@gs:可以说,该库有很多其他Python库所做的事情,有时做得更好。@eyze:http://doc.trolltech.com/4.4/winsystem.html 是一个很好的起点,了解本地集成和部署。 - millimoose

5

Boa Constructor 是一个使用WxPython可视化界面创建器的工具。


1
Boa Constructor是一款出色的工具,类似于Delphi,但它依赖于解析Python自动生成的源代码来跟踪您设计的内容。如果您升级wxPython,您将不得不手动编辑自动生成的代码以使其再次工作(因为各种标志在版本之间添加或重命名)。这可能会带来真正的痛苦。 - Nick

4
我使用 xrced (随附于 wxPython)。GUI 在 xml 文件中定义,您有一个自动生成的 Python 文件来自动化一些初始化,然后您可以继承这些自动生成的类并手动完成其余的初始化。我认为这是将手写 GUI 代码的优雅与 GUI 代码生成的易用性结合起来的好方法。
对于代码,我使用 WingIDE,当处理像 wxPython 这样的大型库(或框架)时,拥有一个良好的调试器和源代码完成功能是很有帮助的。
如果你想要更多自动化(因此,代码会变得更丑),可以尝试最新版本的 Boa,在 ShowMeDo.com 上有一些不错的入门视频教程。

1
手写 GUI 的优雅之处? - Georg Schölly
3
好的,如果做得正确的话... ;) - Toni Ruža
如果 GUI 代码编写得当,它就和其他任何代码一样优雅。 - rectangletangle

2
我使用Eclipse和PyDev作为我的Python IDE(可能不是最好的解决方案,但相当不错)。
对于GUI开发,我使用了wxGlade进行中型项目开发,并且一旦掌握了WxPython的概念,发现它非常易于使用。XML生成非常有用,可以将实际的GUI设计与程序逻辑分离。
所有这些都是免费的。

我还没想出如何将Python解释器添加到Eclipse中,那个安装绝对不是傻瓜式的。它把我难住了! - Iancovici
我不怎么使用Python解释器,所以无法在这方面帮助你 :P - Jacob Wang
刚刚意识到你提到了wxGlade,对于简单的安装和友好的环境给予+1的评价 =) - Iancovici

1

试试VisualWx。我认为GUI设计师非常好;然而IDE相当基本(没有代码完成、调试等)。我的工作模式是同时打开VisualWx和一个好的编辑器,如Komodo Edit/Netbeans等,并根据需要在它们之间切换。


VisualWX看起来很酷,但它还在活跃吗?网站显示的是2007年4月份的Alpha版本,过去六个月里论坛只有5条留言。 - Chris Wuestefeld
我曾经用它来构建我编写的游戏的配置对话框,效果很好。如果你想要从新版本的wxWindows中获取最新的东西,那么它可能不适合你的目的。但是对于我尝试过的事情,它效果很好,而且它是免费的,当前版本似乎很稳定(不像Boa Constructor)。我的建议是简单地尝试一下,看看你的想法如何。 - Brandon

0

0

我已经在几个关键任务的应用程序中使用了wxGlade。如果你对wx有点薄弱,可能会有些困难,但一旦你习惯了它,它是一个很棒的工具。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接