在Windows上选择GUI(wxPy vs pyQt)

时间:2009-06-08 16:26:23

标签: user-interface pyqt wxpython

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

我们知道有两个用于python的GUI工具包:wxPythonpyQT。 任何人都有关于赞成和反对的论据?也许有人知道任何商业应用程序,使用这些产品(只有python版本的工具包)?链接是可取的。

感谢。

8 个答案:

答案 0 :(得分:12)

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

    Rappin&amp ;;
  • “wxPython in Action”一书邓恩
  • 作为wxPython下载
  • 的一部分的大量示例
  • 使用wxWidgets的项目数
  • wxPython代码在Linux,Mac OS / X和Win32上运行良好的事实

我确实考虑过pyQT和其他研究人员成功使用它。在我考虑过的所有API中写了很多例子之后,我发现wxPython为我打了最多的盒子。

至于Tkinter(TIX),我觉得它看起来过时了。 除非您使用IronPython或Jython,否则我不会考虑使用关联的本机窗口API。对于另一个仅在.Net上交付的项目,我计划在StackOverflow成员提供大量反馈后使用WinForms。

答案 1 :(得分:9)

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

答案 2 :(得分:6)

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

答案 3 :(得分:4)

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

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

答案 4 :(得分:4)

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

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

答案 5 :(得分:3)

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

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

答案 6 :(得分:3)

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

  1. 它在每个支持的平台上使用本机小部件。所以应用程序具有原生外观和感觉。我知道PyQt使用原生样式,但据报道,行为(“感觉”)在某种程度上是非原生的,特别是在Mac上。
  2. 它提供了更广泛的小部件选择。

答案 7 :(得分:2)

您还应该查看PyGTK。它与编程模型中的pyQT类似,但由于它是LGPL,因此没有任何许可成本。作为开发人员,我总是觉得很高兴。 pyQT的主要缺点是,在某些情况下,它们会删除文件选择器对话框等功能,以支持用户的简单性。