我们正计划开发一个应用程序来监控和配置我们的服务(在远程服务器上运行)。经过长时间的讨论,我们决定使用 Python 作为我们应用的平台,因为我们热爱并了解 Python。但我们不知道,我们的目标首选什么 GUI 工具包。我们需要快速(用于开发和运行)应用程序,其用户将是管理员、维护者和客户经理。
Python 有两个 GUI 工具包,我们知道:wxPython和pyQT。有人对利弊有争论吗?也许有人知道任何商业应用程序,使用这些产品(只有 python 版本的工具包)?链接是可取的。
谢谢。
经过大量研究,我选择了 wxPython。原因是:
我确实考虑过 pyQT 和其他研究人员正在成功使用它。在我考虑过的所有 API 中编写了许多示例之后,我发现 wxPython 为我打勾的选项最多。
至于 Tkinter (TIX),我认为它看起来相当过时。除非您使用 IronPython 或 Jython,否则我不会考虑使用相关的本机窗口 API。对于另一个将专门在 .Net 上交付的项目,在收到 StackOverflow 成员的大量反馈后,我计划使用 WinForms。
好吧,我是 QT 的粉丝:它具有更现代的外观和感觉。但是 - 您的选择应该基于您的实际要求。简单的贸易研究对此很有帮助。列出您的工具包必须具备的功能以及最好具备的功能,然后适当地加权每个项目。然后查看您的所有选项(也包括 TKinter),然后根据您的功能列表对它们进行评分(使用您分配给每个功能要求的权重)。最后,应该清楚哪一个适合您的项目。
我一直很喜欢 Qt 的“信号和槽”概念模型,但我想对于更习惯于其他事件传播和处理模型的开发人员来说,这可能需要一些学习。就个人而言,如果可以选择,我会选择 PyQt,因为它具有编程方面的优势。
你写了“有两个用于 python 的 GUI 工具包,我们知道:wxPython 和 pyQT。” 您忘记了最明显的工具包:tkinter。这实际上是核心 python 发行版的一部分,不需要额外的下载。
有些人不喜欢 Tk,但这通常是由于无知。Tk 是跨平台工具包的不错选择。它在 Windows 上使用本机小部件(并且已经使用了很多年),最新版本的 tk 在所有平台上使用主题小部件。
我已经使用 wxpython 3 年了.. 现在我们不得不切换到 pyqt,因为 qt 集成在 Maya 2011 中.. 但是,wxpython 更直接,您可以轻松地开始使用它并快速从零开始学习。它提供了很棒的资源和资料。但是QT提供了更多你在wxpython中找不到的强大功能,例如(多点触摸检测),QT还对pc平板电脑等绘图设备提供了很好的支持。
qt 还提供了一个很好的设计器,可以让你更快地创建界面。
qt 的缺点之一是它的许可证,因为它不像 wxpython 那样免费
我想指出 wxPython 与 pyQt 相比的两个优势:
IronPython提供了用于 GUI 工具包的 Windows(和 Mono)选项。它提供对 Winforms 和 WPF 库的访问。例如,请参阅使用 IronPython 和 Windows 窗体进行开发,以及许多其他内容。
如果要扩展选项列表,请考虑构建Web 应用程序而不是(本地)GUI 应用程序。您说您的服务在远程服务器上运行,因此网络是您要求的一部分。一旦你开始走这条路,Python 就会提供大量令人眼花缭乱的选项。
您还应该查看 PyGTK。它在编程模型中类似于 pyQT,但由于它是 LGPL,因此没有任何许可成本。作为一名开发人员,我总是觉得与他们一起工作很愉快。pyQT 的主要缺点是,在某些情况下,它们取消了文件选择器对话框等功能,以方便用户使用。