使用Python开发跨平台GUI应用的最佳配置

0 投票
3 回答
587 浏览
提问于 2025-04-17 07:47

我已经使用REALbasic好几年了,主要是为了开发跨平台的应用程序。不过,使用这种专有语言让我感到很沮丧,所以我决定换一种语言,最终选择了PythonQT

因为我对Python完全不熟悉,大家觉得我应该选择Python 2还是3呢?

我打算使用PyQtPySide这两个库。我知道这两者中,只有PyQt(目前)支持Python 3。这是不是意味着PyQt比PySide更有优势呢?不过我觉得PySide的语法看起来更简洁一些。

3 个回答

0

关于“Python2还是Python3?”这个问题,我建议你看看这篇文章,它在Python的维基上。文章不仅详细回答了你可能会有的主要问题,还提供了很多有用的链接。

至于“PyQt还是PySide?”从纯编码的角度来看,它们之间的区别非常小,尤其是对初学者来说(详细信息可以查看这篇文章)。PyQt和PySide之间唯一显著的区别是它们的许可证(GPL和LGPL)。

PyQt是一个比PySide更成熟的项目,在与Qt和Python版本的兼容性方面也更灵活。PyQt依赖的Sip包还允许你在运行时微调不同API版本的使用(详细信息请查看这里)。

总体来说,短期内“最安全”的选择可能是PyQt加Python2。关于PyQt的代码比PySide多得多,关于Python2的代码也比Python3多,而且这种情况可能会持续一段时间。因此,作为初学者,从这个组合开始是没有坏处的,因为(不考虑许可证问题)如果以后需要切换,过程相对简单。

0

PyQt和PySide基本上是一样的,主要的区别在于它们的授权方式。PyQt是GPL授权,这意味着如果你想卖一个应用,就需要购买商业许可证。而PySide则是LGPL授权,这样你就可以在不买许可证的情况下出售你的代码。好处是,你只需要更改一下导入的部分,就可以出售了。:) 另外,PySide只支持2.x版本,而PyQt则支持两个版本。

PySide的资金支持也快结束了

“PySide的语法似乎更‘干净’。”

PyQt在2.x版本中使用的是api 1(可以通过sip.setapi(2, 'item')切换到api 2),而在3.x版本中使用的是api 2。切换到api 2后,语法就和PySide以及PyQt的3.x版本一样了。

关于api 1和api 2之间区别的好文章可以在PSEP 101找到。

“因为我对Python一无所知,大家会推荐使用Python 2还是3?”

你更可能会使用Python 2,因为很多模块和库还没有切换到Python 3,毕竟Python 3和Python 2之间不兼容(从2008年Py3k发布到现在已经过去3年了!)。

根据你的具体情况,选择最适合你的版本。有些人更喜欢PyQt,因为它存在的时间更长,项目更成熟,可能会更稳定。不过,我自己用PySide也没遇到过什么问题,所以用它也没问题。

1

PySide和PyQt4几乎是一样的。实际上,你在代码中可以经常把PyQt4换成PySide(反之亦然)来导入。

Python2和Python3也差不多,只有一些小变化,初学者一开始可能不会注意到(除了print变成了一个函数)。

Python2在模块支持方面更多(因为Python3和Python2不兼容),所以我建议你先用Python2,直到你找到切换到Python3的理由。其实没有什么好处,因为这两个版本是分开维护的。


总之,还是用那些已经被证明有效的东西吧。

撰写回答