1. 区别
Qt库里面有非常强大的图形界面开发库,但是Qt库是C++语言开发的,PySide2、PyQt5可以让我们通过Python语言使用Qt。
但是 PySide2、PyQt5 这两者有什么区别呢?
可以形象地这样说: PySide2 是Qt的 亲儿子
, PyQt5 是Qt还没有亲儿子之前的收的 义子 (Riverbank Computing这个公司开发的)。
那为什么 PyQt5 这个义子 反而比 PySide2 这个亲儿子更出名呢?
原因很简单:PySide2 这亲儿子最近(2018年7月)才出生。
但是亲儿子毕竟是亲儿子,Qt准备大力培养,PySide2 或许更有前途。
已经在使用 PyQt5 的朋友不要皱眉, 两个库的使用 对程序员来说,差别很小:它们的调用接口几乎一模一样。
如果你的程序是PyQt5开发的,通常只要略作修改,比如把导入的名字从 PyQt5 换成 PySide2 就行了。反之亦然。
Python GUI开发首选QT,跨平台。界面好看,功能强大。但是很快你就会发现,这里有2个Python库可供选择,PyQT5和PySide2。
那么究竟是使用PyQT5还是使用PySide2呢?看起来PyQT5名气更大,似乎是个不错的选择。但是别忙,这里我们简单了解一个他们各自的历史。
PyQT是由Riverbank Computing Ltd开发维护的。采用了GPL加商业许可两种许可证模式。这就意味着,如果你的代码使用了PyQT,那么你必须开源你的代码,这是由GPL的传染性决定的。要么如果你不想开源你的代码,你就得购买商业许可证。
正是由于这样的许可模式,导致PyQT商业不友好。于是Nokia(QT的开发者)打算和Riverbank Computing谈判,劝说PyQT采用LGPL(如果只是将采用该许可证的项目做为Library来link,则不需要开源)。LGPL相对来说是商业友好的。但是Riverbank不同意该建议(当然不同意,损失的都是钱呀)。所以,Nokia一气之下,决定开发自己的版本。这就是后来的PySide。PySide和PySide2的区别只在于一个是支持QT5之前的版本,一个是支持QT5的版本。
其实PyQT5和PySide2大部分的接口都是很类似的。只不过PyQT5对QT5的支持完成的比较早,大概在2016年中的样子,PySide2差不多在2年之后才完成对QT5的支持。这就导致了,PyQT5相比较PySide2名气更大一点
。
不过由于PySide2是QT的亲儿子,根正苗红。所以很快成为的QT的官方版本
。
好了,了解了2者的区别。我们就知道如何选择了。如果你打算开源你的项目,那么这2个都可以。如果你打算用作商业用途,那么PySide2就相对更友好点。或者不差钱就购买PyQT5的商业版。
参考文章:
https://www.byhy.net/tut/py/gui/qt_01/
https://blog.csdn.net/weixin_39641257/article/details/111640152
2. 结论
之前用的PyQt5开发,最后索性还是选择PySide进行开发,毕竟是Qt的儿子。
pip install pyside2 -i https://pypi.tuna.tsinghua.edu.cn/simple