【问题标题】:Selecting GUI on windows (wxPy vs pyQt)在 Windows 上选择 GUI(wxPy 与 pyQt)
【发布时间】:2010-11-01 05:36:24
【问题描述】:

我们计划开发一个应用程序来监控和配置我们的服务(在远程服务器上运行)。经过长时间的讨论,我们决定使用 Python 作为我们应用程序的平台,因为我们热爱并了解 Python。但我们不知道,我们的目标首选什么 GUI 工具包。我们需要快速(用于开发和运行)应用程序,其用户将是管理员、维护者和客户经理。

python 有两个 GUI 工具包,我们知道:wxPythonpyQT。 有人对利弊有争论吗?也许有人知道任何商业应用程序,使用这些产品(只有 python 版本的工具包)?链接是可取的。

谢谢。

【问题讨论】:

    标签: user-interface pyqt wxpython


    【解决方案1】:

    嗯,我是 QT 的粉丝:它具有更现代的外观和感觉。但是 - 您的选择应该基于您的实际要求。简单的贸易研究对此很有帮助。列出您的工具包必须具有哪些功能以及哪些功能会很不错,然后适当地加权每个项目。然后查看您的所有选项(也包括 TKinter),然后根据您的功能列表对它们进行评分(使用您分配给每个功能要求的权重)。最后,应该清楚哪一个适合您的项目。

    【讨论】:

      【解决方案2】:

      IronPython 提供了用于 GUI 工具包的 Windows(和 Mono)选项。它提供对 Winforms 和 WPF 库的访问。例如,请参阅 Developing with IronPython & Windows Forms 和许多其他人。

      如果您想扩展选项列表,请考虑构建 Web App 而不是(本地)GUI 应用程序。您说您的服务在远程服务器上运行,因此网络是您要求的一部分。 一旦你开始走这条路,Python 会提供一个bewildering amount of options

      【讨论】:

        【解决方案3】:

        我一直很喜欢 Qt 的“信号和槽”概念模型,但我想对于更习惯于其他事件传播和处理模型的开发人员来说,这可能需要一些学习。就我个人而言,如果可以选择,我会选择 PyQt,因为这个编程方面。

        【讨论】:

          【解决方案4】:

          您还应该查看 PyGTK。它在编程模型中类似于 pyQT,但由于它是 LGPL,因此没有任何许可成本。作为一名开发人员,我总是觉得与他们一起工作很愉快。 pyQT 的主要缺点是,在某些情况下,它们会取消文件选择器对话框等功能,以方便用户使用。

          【讨论】:

            【解决方案5】:

            经过大量研究,我选择了 wxPython。原因是:

            • Rappin 和 Dunn 的“wxPython in Action”一书
            • wxPython 下载中包含大量示例
            • 使用过 wxWidgets 的项目数
            • 事实上 wxPython 代码在 Linux、Mac OS/X 和 Win32 上运行同样出色

            我确实认为 pyQT 和其他研究人员正在成功使用它。在我考虑过的所有 API 中编写了许多示例之后,我发现 wxPython 最适合我。

            至于 Tkinter (TIX),我认为它看起来相当过时。 除非您使用 IronPython 或 Jython,否则我不会考虑使用相关的本机窗口 API。对于另一个将专门在 .Net 上交付的项目,在收到 StackOverflow 成员的大量反馈后,我计划使用 WinForms。

            【讨论】:

            • +1 :我喜欢 PyQt,但是 wxPython 附带的示例代码很好。很高兴能够从演示应用中复制和粘贴。
            • “...wxPython 代码在 Linux、Mac OS/X 和 Win32 上同样运行良好”的说法有点言过其实。我经常发现这三个平台之间的差异。某些小部件暗示未在某些平台上实现。一些小部件在不同的平台上抛出错误或具有不同的行为。它并不普遍,但平台之间存在真实。
            【解决方案6】:

            我想指出 wxPython 与 pyQt 相比的两个优势:

            1. 它在每个受支持的平台上使用本机小部件。因此,这些应用程序具有原生外观和感觉。我知道 PyQt 使用原生样式,但据报道其行为(“感觉”)有些非原生,尤其是在 Mac 上。
            2. 它提供了更多开箱即用的小部件选择。

            【讨论】:

            • 关于第 2 点:这是一种诅咒,也是一种祝福。 PyQt 的小部件更少,但它们更强大,因为它们更灵活(例如树视图)。我已经放弃了 wxPython,因为文档不完整,而且我过去发现了太多错误。我希望 wxPython 能够专注于让一小部分小部件更健壮和更好地记录,而不是他们似乎拥有的厨房水槽方法。
            【解决方案7】:

            您写道“有两个用于 python 的 GUI 工具包,我们知道:wxPython 和 pyQT。”您忘记了最明显的工具包:tkinter。这实际上是核心 python 发行版的一部分,不需要额外下载。

            有些人不喜欢 Tk,但这通常是由于无知。 Tk 是跨平台工具包的不错选择。它在 windows 上使用原生小部件(并且已经使用了很多年),最新版本的 tk 在所有平台上使用主题小部件。

            【讨论】:

            • Tkinter v8.5 看起来比早期版本好得多。如果您的 GUI 只需要基本的小部件或主要基于 Canvas,那么 Tkinter 是一个方便的选择。我发现tkdocs.com 是一个很好的资源。
            • 虽然我同意,但我还要说,如果您的程序主要是基于文本的,那么没有什么可以与 Tk 的文本小部件相媲美。唯一的缺点是缺乏良好的打印选项。尽管如此,它还是比 wxPython 工具包中的任何小部件都要好上几英里。
            【解决方案8】:

            我已经使用 wxpython 3 年了.. 现在我们不得不切换到 pyqt,因为 qt 已集成到 Maya 2011 中.. 但是,wxpython 更直接,您可以轻松地开始使用它并从中学习零速度。它提供了令人敬畏的资源和 decumentation。但是QT提供了更多你在wxpython中找不到的强大功能,例如(多点触摸检测),QT也对pc平板电脑等绘图设备提供了很好的支持。

            qt 还提供了一个很好的设计器,可以让你更快地创建界面。
            qt 的缺点之一是它的许可证,因为它不像 wxpython 那样免费

            【讨论】:

            • 建议你修改... QT 本身就是 LGPL。 PyQT 是 GPL,但 PySide 是 LGPL。所以许可证免费的,但是如果你使用 PyQT 并且你不希望你的所有代码都受 GPL 约束,你需要购买商业许可证,而 PySide 没有这个限制。跨度>
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-04-16
            • 1970-01-01
            • 2014-12-06
            • 1970-01-01
            • 2018-09-18
            • 1970-01-01
            相关资源
            最近更新 更多