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



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

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

我想我会用PyQtPySide。我知道这两者中,只有PyQt(目前)支持Python 3。比起PySide,这是否具有足够的优势?这只是PySide似乎有一个"更干净"的语法。

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

Python2和Python3也几乎是相同的,有一些小的变化,初学者不会注意到一段时间(除了print成为一个函数)。

Python2在模块方面有更多的支持(Python3打破了与Python2的向后兼容性),所以我建议你使用Python2,直到你找到切换到Python3的理由。这真的没有好处,因为两个版本是分开维护的。


简而言之,坚持使用已知有效的东西。

PyQt和PySide基本相同。主要区别在于授权。PyQt是GPL的,当销售一个应用程序时,它需要一个商业许可证,PySide有一个LGPL许可证,允许你出售你的代码而不需要购买许可证。好处是,你可以把进口换成卖。:) PySide也是2。

PySide的资金也结束了。

"这只是PySide似乎有一个'更干净'的语法。"

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

在psp 101中可以找到一篇解释api 1和api 2区别的好文章。

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

你更有可能使用Python 2,因为很多模块和库还没有切换到Python 3,因为它是一个与Python 2不兼容的版本(自2008年Py3k发布以来已经过去了3年!)。

考虑到具体情况,选择最适合你的那个。有些人更喜欢PyQt,因为它存在的时间更长,是一个更成熟的项目,因此可能更稳定。虽然,我也从来没有真正遇到过PySide的任何问题,所以它应该是好的。

关于"Python2还是Python3?"的问题,我建议您阅读Python Wiki上的这篇文章。除了对你可能会遇到的大多数主要问题给出详细的答案外,它还提供了许多你可能会觉得有用的链接。

至于"PyQt还是PySide?"从纯编码的角度来看,差异很小,特别是对于初学者(详细信息,请参阅Qt Wiki上的这篇文章)。PyQt和PySide之间唯一显著的区别是许可(GPL vs LGPL)。

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

总的来说,"最安全"的短期选择可能是PyQt+Python2。PyQt的代码比PySide的代码要多得多,Python2的代码比Python3的代码要多得多,而且这种情况可能会持续很长一段时间。因此,作为一个初学者,从这种组合开始并没有什么坏处,因为(不考虑许可问题)在以后必要时进行转换相对来说不会很痛苦。

最新更新