环境搭建
$ python -V
Python 3.9.16
QT6 需要 Python 3.7+ 以上版本。
$ python -m venv envqt6
在这个命令中,参数 -m 表示执行模块的方式。它告诉 Python 解释器以模块的方式执行后面提供的参数。
venv 是一个 Python 模块,用于创建和管理虚拟环境。当你运行 python -m venv envqt6 命令时,它会使用 venv 模块创建一个名为 envqt6 的虚拟环境。虚拟环境是一个独立的 Python 运行环境,可以让你在同一台机器上管理和运行不同的 Python 项目,每个项目都可以拥有自己的依赖包和配置,而互不干扰。
因此,python -m venv envqt6 命令的参数含义是使用 venv 模块创建一个名为 envqt6 的虚拟环境。
envqt6 这个虚拟环境是在当前目录下创建的。
source envqt6/bin/activate
激活 envqt6 这个环境
which python
/Users/ghj1976/envqt6/bin/python
我们可以看到环境已经切换到这里了。
pip install pyside6
安装最新版本的 PySide6。
测试安装
通过运行以下 Python 代码来测试您的设置以及版本信息:
import PySide6.QtCore
# Prints PySide6 version
print(PySide6.__version__)
# Prints the Qt version used to compile PySide6
print(PySide6.QtCore.__version__)
VSCode 配置虚拟环境中的python解释器
查找项目指定虚拟环境的python解释器路径
如果不知道,可以用下面语句获得
import sys
sys.executable
sys.executable的值就是虚拟环境的python解释器路径。
我这里是:
/Users/ghj1976/envqt6/bin/python
使用ctrl+shift+p命令,打开命令交互面板,输入
Python:Select Interpreter
+ 输入解释器路径 ...
输入 Python 解释器的路径
输入并回车
然后就可以选择这个解释器了。
Hello World
创建一个 hello_world.py 文件,内容如下:
import sys
import random
from PySide6 import QtCore, QtWidgets, QtGui
class MyWidget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"]
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)
@QtCore.Slot()
def magic(self):
self.text.setText(random.choice(self.hello))
if __name__ == "__main__":
app = QtWidgets.QApplication([])
widget = MyWidget()
widget.resize(800, 600)
widget.show()
sys.exit(app.exec())
通过 python hello_world.py 就可执行这个。
点击其中按钮,可以看到文字在变化。
部署
pyside6-deploy ./hello_world.py
参考:
- https://doc.qt.io/qtforpython-6/quickstart.html#quick-start
- https://doc.qt.io/qtforpython-6/deployment/deployment-pyside6-deploy.html