Pyside6 opencv实战系列 001

系列简介 :结合pyside6 opencv ros进行实战训练。默认环境为linux.

(笔者环境为linux ubuntu22.04)

适合于:有一定python,opencv,ros基础,会使用linux系统。

Pyside2 Pyside6 Pyqt5 区别在哪?我到底学哪个?

PyQt5、PySide2 和 PySide6 都是 Python 中常用的 GUI 开发框架,它们有很多相似的地方,但也有一些区别。

PyQt5

PyQt5 是 Riverbank Computing 公司开发的 Python Qt 绑定库,它将 Qt 库中的所有功能都封装进了 Python 类中,并提供了 Pythonic 的 API,让开发者能够更加方便地使用 Qt 库。PyQt5 支持 Qt 5 版本及以上,与 Python 3 兼容。PyQt5 的开发者需要购买商业许可证才能将其用于商业目的。

PySide2

PySide2 是 Qt 公司开发的 Python Qt 绑定库,它与 PyQt5 类似,提供了 Pythonic 的 API,让开发者能够更加方便地使用 Qt 库。PySide2 支持 Qt 5 版本及以上,与 Python 3 兼容。PySide2 的开发者可以免费将其用于商业目的。

PySide6

PySide6 是 PySide2 的最新版本,它支持 Qt 6 版本,并提供了与 Qt 6 相关的新特性和功能。PySide6 与 Python 3 兼容,同样可以免费将其用于商业目的。

三者的区别

  1. 开发者

PyQt5 由 Riverbank Computing 公司开发,而 PySide2 和 PySide6 则是由 Qt 公司开发。

  1. 许可证

PyQt5 需要购买商业许可证才能将其用于商业目的,而 PySide2 和 PySide6 可以免费将其用于商业目的。

  1. 支持版本

PyQt5 支持 Qt 5 及以上版本,而 PySide2 和 PySide6 也支持 Qt 5 及以上版本。PySide6 还支持 Qt 6 版本,而 PyQt5 和 PySide2 不支持 Qt 6 版本。

  1. API

PyQt5 和 PySide2 的 API 很类似,而 PySide6 的 API 则更加接近 Qt 6 的 API。

总的来说,PyQt5 和 PySide2、PySide6 都是非常优秀的 Python Qt 绑定库,它们都提供了 Pythonic 的 API,使得开发者能够更加方便地使用 Qt 库。选择使用哪个库,应该根据实际需求和开发团队的情况来进行选择。不同的是 使用pyqt5做项目必须开源,而使用pyside2或者pyside6则可以闭源。

参考资料:

https://www.pythonguis.com/faq/pyqt5-vs-pyside2/

安装配置PYSIDE6开发环境

ps:这里建议使用虚拟环境分割开来

python虚拟环境创建

如果你使用的是单纯的python解释器:

  1. 安装virtualenv

pip install virtualenv
  1. 创建虚拟环境目录:

    mkdir pyqt
    (mkdir 虚拟环境名)

然后切换到你创建的目录

  1. 创建一个独立虚拟环境:

virtualenv pyqt
(virtualenv 虚拟环境名)

如果命令生效在你创建的文件夹下会出现一个文件夹名为pyqt

  1. 激活虚拟环境

先切换到虚拟环境的Scripts路径下

windows: 执行activate脚本 激活虚拟环境
activate.bat
​
linux: source activate
source activate
  1. 检查:

如果创建成功 你会发现你的cmd会增加一个前缀(pyqt)

在此环境下输入

pip list 

你会发现这是一个非常干净的环境

  1. 退出虚拟环境:

deactivate

如果你使用的是anaconda:

  1. 创建虚拟环境:

conda create -n pyqt python=3.9

这就创建了一个3.9版本的名为pyqt的虚拟环境

  1. 激活虚拟环境:

conda activate pyqt

同样的激活成功命令行前面会出现(pyqt)

​
conda env list 查看所有虚拟环境
​
conda remove -n pyqt --all 删除虚拟环境
​

安装pyside6

pip install PySide6

随后找到你的虚拟环境python环境下的sit-package文件夹在文件夹搜索

如果你只下载了pyside6那么只有一个designer windows下也一样

如果是windows需要把快捷方式发送到桌面,linux会在应用程序中自带:

pyside环境测试 我的第一个ui程序

环境测试:

运行以下代码

import PySide6.QtCore
​
# Prints PySide6 version
print(PySide6.__version__)
​
# Prints the Qt version used to compile PySide6
print(PySide6.QtCore.__version__)

 显示版本号即可:

我的第一个pyside6代码:

import sys
from PySide6 import QtCore, QtWidgets
​
class MyWidget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.print = 'congratulate!'
        self.button = QtWidgets.QPushButton("Click me!")
        self.text = QtWidgets.QLabel("Hello World", alignment=QtCore.Qt.AlignCenter)
​
        self.layout = QtWidgets.QVBoxLayout(self)
        self.layout.addWidget(self.text)
        self.layout.addWidget(self.button)
​
        self.button.clicked.connect(self.magic)
    def magic(self):
        self.text.setText(self.print)
​
​
if __name__ == "__main__":
    app = QtWidgets.QApplication([])
​
    widget = MyWidget()
    widget.resize(800, 600)
    widget.show()
​
    sys.exit(app.exec())

点击按钮前:

点击后:

pyside6官网链接:
https://doc.qt.io/qtforpython-6/quickstart.html

结语:如有错误请指正,有疑问或者想法可评论或私聊