【问题标题】:wxPython vs PyQt vs PyGTK: when and what to use?wxPython vs PyQt vs PyGTK:何时以及使用什么?
【发布时间】:2013-11-04 05:33:15
【问题描述】:
  • 在使用 Python 设计 GUI 界面时需要那些健康经验最低的人的建议。
  • 根据 GUI 复杂性何时选择什么?
  • 我们可以使用哪些 GUI 构建器来提高开发质量?

这是我的第一个 GUI 设计,我在没有 GUI 构建器的情况下完成了它,目前堆叠,因为我已经理解,wx.ListCtrl 的 ObjectListView 包装器本身并没有轻松包含进度条或仪表元素。 (参见图片中的“上传状态”栏)。

注意: ObjectListView 在 .Net 版本中有进度条,目前在 wx.Python 中没有。

P.S: 我发现这个很棒Python GTK+ Full Stack Tutorial

【问题讨论】:

  • 您是否不知道 tkinter 是您可以使用的另一个工具包,或者您是否出于某种原因明确将其排除在外?
  • 是的,tx u,Tkinter 也是一个替代方案,可能不止这些,是的,tx u 也提醒了我。我只想听听我的声音,还有其他意见 :) 谢谢 :)
  • 致@BryanOakley 有一段时间可能是唯一接近的解决方案,它还“附带”了python源代码和安装程序,我在它的PythonLand中看到了探索:)
  • TkInter 有它的局限性,很多时候它需要用 ttk 进一步扩展它。最好使用较新的工具包,因为它们是最完善和最新的,除非您的要求很少并且需要 Tkinter 提供的小磁盘空间和可用性。

标签: user-interface wxpython pyqt pygtk


【解决方案1】:

我不太确定你在问什么。 wxPython 和 pyQt / pyside 可能是在所有平台上最容易使用的,并且在大多数操作系统上看起来都是正确的。我知道 wxPython 是专门为包装原生小部件而设计的,所以如果你希望你的应用看起来是原生的,我认为 wxPython 是最好的选择。如果您希望能够为您的应用设置主题/皮肤,那么 PyQT 或 pyGTK 可能会更好。

PyQt/PySide 在某种程度上支持移动设备,我不相信其他两个支持。如果您打算为移动设备编程,那么您可能想走这条路或看看 Kivy。

PyQt/PySide 有一个非常强大的所见即所得编辑器。 wxPython 有几个,但我不认为它们中的任何一个都支持 wx 的所有小部件,而且它们的支持参差不齐。这并没有阻止我,因为无论如何我都是手工编码的。

像往常一样,您可能需要阅读大量文档并尝试每个文档,看看哪一个最适合您的大脑并最能满足您的需求。

【讨论】:

  • 嘿,谢谢你的回答,如果不是太麻烦,你能不能链接到上面写着 wxPython wrap native widgets 的资源。
  • 我认为在速度、小部件种类、双向支持等方面可以说很多......
【解决方案2】:

如果您想要跨平台兼容性,请不要使用 PyGTK。 GTK3 还不能在 windows 上运行(我上次检查过),GTK2 在 windows 下有一个可怕的内存泄漏,已在最新源中修复,但没有为 windows 编译新版本。

我会投票赞成 PySide(更灵活的商业选项许可)而不是 PyQt 和 PySide/PyQt 而不是 wxPython,因为我认为 GUI 设计器工具更好!能够以图形方式快速创建和编辑 GUI(并且独立于您的应用程序代码)可以节省大量时间。


更新:实际上,出于稳定性和长期支持的原因,我现在推荐 PyQt 而不是 PySide。 PySide 开发滞后,修复错误的人很少,也没有人致力于支持 Qt 5。

【讨论】:

【解决方案3】:

Windows 中的 PyQT

PyGTK

KDE 中的 PyQT

  1. Windows 中的 PyQT
  2. PyGTK+3
  3. KDE 中的 PyQT

因此,如果您使用 PyQT,您的应用程序的设计在不同的操作系统和桌面环境上看起来会有所不同。我没有 Macintosh,因此无法提供图片,我的应用程序在其中的外观如何。这是我用 PyQT 和 PyGTK+3 编写的应用程序之一。请记住,设计将与 PyGTK+3 保持原样,因此不会像在 PyQT 中那样有任何差异。这绝对是最容易学习的,因为有一个 Glade 程序可以帮助您构建您的设计,而无需花费一分钟手动编码。但是使用 PyQT,您可以微调应用程序设计,并且不会让您因错误而烦恼。

【讨论】:

  • 当UI外观依赖于OS观感主题时,这种UI就是:使用OS原生观感。 :)
猜你喜欢
  • 2017-08-07
  • 2010-12-06
  • 2012-05-21
  • 1970-01-01
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-19
相关资源
最近更新 更多