【问题标题】:Nice IDE with GUI designer for wxPython or Tkinter [closed]带有用于 wxPython 或 Tkinter 的 GUI 设计器的不错的 IDE [关闭]
【发布时间】:2010-10-22 11:58:58
【问题描述】:

我有一点用 Python 开发小型命令行应用程序的经验。我想继续使用 Python 开发 GUI。在 Python 可用的 GUI 工具包中,我觉得最倾向于使用的是 wxPythonTkinter;但我不想一直自己编写所有的 GUI。

这些工具包中是否有任何好的 GUI IDE?它不需要是免费的或开源的。

【问题讨论】:

    标签: python user-interface ide wxpython tkinter


    【解决方案1】:

    我将只讨论 WxPython,因为它是我唯一使用过的工具包。 TkInter 很适合编写小程序(然后它不需要 GUI 设计器),但并不适合大型应用程序开发。

    • wxFormBuilder真的很不错:它会生成.XRC你需要加载到你的程序中的文件,它可以在你使用的时候通过子类化来生成.py文件。

    • DialogBlockswxDesigner是两个商业软件,可以直接生成Python代码。由于价格原因,我没有对这些进行过多测试。

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

    在尝试了所有这些之后,我意识到它们都有所有缺陷,没有什么比在编辑器中编写 GUI 更好的了。问题在于扩展的学习曲线。但是,与使用 GUI 设计器相比,您的速度会更快,代码也会更灵活。

    看看这个用 wxPython 编写的list of major applications。您可能会看到这些都没有使用 GUI 设计器,这一定是有原因的。

    然后你就会明白 gs 说你要么切换到 PyQt 要么你手动编写应用程序是正确的。我过去看过 Qt Designer 并认为这是我需要的。不幸的是,PyQt 有一些许可限制。

    【讨论】:

    • 您如何定义“大型应用程序开发”,为什么您认为 tkinter 不适合?虽然我从未将它用于超过百万行的应用程序,但我认为它的扩展性与 wxPython 差不多。
    【解决方案2】:

    这可能无法直接回答您的问题,但我选择了PyQt,因为 wxPython 没有好的 UI 设计师。

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

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

    【讨论】:

    • +1 Qt Designer 是让我不再讨厌 UI 设计师的程序。此外,PyQt 绑定似乎更 Pythonic,wx 绑定似乎有太多的 C++ 突出。 (例如整数事件/动作 ID。)另一件事是使用在运行时加载的生成代码和资源文件大多是类似的。生成的代码非常简洁,而且几乎是您自己编写的,这并没有什么坏处。
    • PyQt 是否支持 Win/Mac/Linux 的原生外观?
    • @eyze:部分。在 Mac 上,它使用 Carbon 元素(他们将其移植到 Cocoa...),在 Win 上,它们正在从自定义元素(原生外观和感觉)切换到真正的原生小部件。在 linux 上,他们绘制自定义元素,但可以为系统上的所有 Qt 应用程序更改外观。 PyQt 的另一个优点是它的库,它不仅仅是一个 GUI 框架。
    • @gs:可以说这个库复制了很多其他 Python 库有时做得更好的东西。 @eyze:doc.trolltech.com/4.4/winsystem.html 是了解本机集成和部署的一个很好的起点。
    【解决方案3】:

    Boa Constructor 有一个 WxPython GUI 构建器。

    【讨论】:

    • Boa 构造函数是一项出色的工作,就像 Delphi 一样,但它依赖于解析 Python 自动生成的源代码来跟踪您的设计。如果您升级 wxPython,您将不得不手动编辑您的自动生成的代码以使其再次工作(因为添加了各种标志或在版本之间重命名了一些东西)。这可能是一个真正的痛苦。
    【解决方案4】:

    我使用 xrced(带有 wxPython)。 GUI 是在 xml 文件中定义的,您有一个自动生成的 python 文件,该文件可以自动进行一些初始化,然后您将这些自动生成的类子类化并手动完成其余的初始化。我发现这是将手写 GUI 代码的优雅与 GUI 代码生成的简易性融合在一起的好方法。

    对于我使用WingIDE 的代码,在处理像 wxPython 这样的大型库(或框架,如果你愿意的话)时,有一个好的调试器和好的源代码完成是很有帮助的。

    如果你想要更多的自动化(以及更丑陋的代码),请尝试最新版本的 BoaShowMeDo.com 有一些不错的介绍性截屏视频

    【讨论】:

    • 优雅的手写GUI???????
    • 好吧,如果做对了... ;)
    • 如果 GUI 代码处理得当,它和其他代码一样优雅。
    【解决方案5】:

    我使用 Eclipse 和 PyDev 作为我的 Python IDE(这可能不是最好的解决方案,但它相当不错)

    对于 GUI 开发,我在一个中型项目中使用了 wxGlade,发现它非常容易使用,您已经掌握了 WxPython 的概念。 XML 生成对于将实际的 GUI 设计与程序逻辑分离非常有用。

    所有这些都是免费的。

    【讨论】:

    • 仍然没有弄清楚如何将python interperter添加到eclipse中,安装是def not idiot-proof。它抓住了我!
    • 我不太会使用 python 解释器,所以我无法帮助你:P
    • 刚刚意识到你提到了wxGlade,+1 安装简单,环境友好=)
    【解决方案6】:

    试试VisualWx。我觉得 GUI 设计师很好;但是 IDE 相当简陋(没有代码完成、调试等)。我的工作模式是拥有 VisualWx 和像 Komodo Edit/Netbeans/etc 这样的好编辑器。同时打开并根据需要在它们之间切换。

    【讨论】:

    • VisualWX 看起来很酷,但它仍然有效吗?该网站显示 2007 年 4 月的 alpha 版本,在过去的六个月中,论坛中只有 5 条消息。
    • 我已经用它为我编写的游戏构建了配置对话框,并且效果很好。如果您想从新的 wxWindows 版本中获得最前沿的东西,那么它可能无法满足您的目的。但是对于我尝试过的东西,它对我来说效果很好,它是免费的,并且当前版本看起来很稳定(例如,与 Boa Constructor 不同)。我的建议是简单地尝试一下,看看你的想法。
    【解决方案7】:

    我已经将 wxGlade 用于一些任务关键型应用程序。如果 wx 有点弱,它可能会很粗糙,但是一旦你习惯了它,它就是一个很好的工具。

    【讨论】:

      【解决方案8】:

      不是真正的 GUI IDE,但它可以引导您在 JSON 文件中定义 Tkinter GUI:https://github.com/tmetsch/pytkgen

      【讨论】:

        猜你喜欢
        • 2013-03-20
        • 1970-01-01
        • 2011-07-02
        • 1970-01-01
        • 2013-04-30
        • 2011-08-26
        • 2011-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多