使用Python开发基于GUI的跨平台应用程序的最佳设置

时间:2011-12-06 07:26:10

标签: python qt user-interface pyqt pyside

我使用REALbasic多年来开发跨平台应用程序。我对使用专有语言进行开发感到沮丧,因此决定更改语言并确定PythonQT

由于我不懂Python,人们会推荐Python 2或3吗?

我想我会使用PyQtPySide。我知道在这两个中,只有PyQt(目前)支持Python 3.这是否比PySide提供了足够的优势?只是PySide似乎有一种“更清晰”的语法。

3 个答案:

答案 0 :(得分:1)

PySide和PyQt4几乎完全相同。实际上,您通常可以在代码的导入声明中将PyQt4替换为PySide(反之亦然)。

Python2和Python3几乎完全相同,只有一些小的改动,初学者暂时不会注意到(除了print成为一个函数)。

Python2在模块方面有更多的支持(Python3向后兼容Python2),所以我建议你使用Python2,直到找到切换到Python3的理由。确实没有任何好处,因为两个版本都是单独维护的。


简而言之,坚持使用已知可行的东西。

答案 1 :(得分:0)

PyQt和PySide大多相同。许可证的主要区别在于。 PyQt是GPL,在销售应用程序时,它需要商业许可证,PySide拥有LGPL许可证,允许您在不购买许可证的情况下销售代码。好的是,你可以切换进口并出售它。 :) PySide也只有2.x,其中PyQt都是。

PySide funding is ending as well

“只是PySide似乎有一个'更清洁'的语法。”

PyQt使用2.x中的api 1(使用sip.setapi(2, 'item')切换到api 2)和3.x中的api 2。切换到api 2将具有与3.x中的PySide和PyQt相同的语法。

可以在PSEP 101中找到解释api 1和api 2之间差异的好文章。

“既然我不懂Python,人们会推荐Python 2或3吗?”

你更有可能使用Python 2,因为很多模块和库还没有转向Python 3,因为它是针对Python 2的不兼容版本(自2008年Py3k问世以来已经有3年了! )。

考虑到具体情况,请考虑哪一种最适合您的需求。有些人更喜欢PyQt,因为它的存在时间更长,是一个更成熟的项目,因此可能更稳定。虽然,我从来没有对PySide有任何问题,所以应该没问题。

答案 2 :(得分:0)

关于“Python2或Python3?”的问题,我建议你阅读Python Wiki上的this article。除了详细解答您可能对此主题提出的大多数主要问题外,它还有许多您可能会觉得有用的链接。

至于“PyQt还是PySide?”:从纯粹的编码角度来看,差异很小,特别是初学者(详情见Qt Wiki上的this artical)。 PyQt和PySide之间唯一重要的区别是许可(GPL与LGPL)。

PyQt是一个比PySide更成熟的项目,在与Qt和Python版本的兼容性方面更加灵活。 Sip包(PyQt所依赖的)还允许您在运行时微调不同API版本的使用(有关详细信息,请参阅here)。

总的来说,“最安全”的短期选择可能是PyQt + Python2。对于PyQt,有一个很多的代码比用于PySide的代码更多,而对于Python2,有比Python3更多的代码,并且很可能会保持这种方式很长一段时间。因此,作为一个初学者,开始使用这种组合对你没有任何伤害,因为(暂时不考虑许可问题)如果必要的话,以后进行切换会相对轻松。