原文地址:https://doc.qt.io/qtforpython/quickstart.html

环境要求

PySide6的安装需要如下环境支持:

  • Python 3.6+
  • 建议使用虚拟环境,比如 venv 或 virtualenv

创建并激活虚拟环境

终端运行如下命令(译者注:官方是这样写的,实际上是用PyCharm 自2019.3.3版本之后可自动设置虚拟开发环境,可自行查阅)

TODO: 单独写个PyCharm自动设置虚拟开发环境的教程

$ python -m venv env/       # Your binary is maybe called 'python3'
$ source env/bin/activate   # for Linux and macOS
$ env\Scripts\activate.bat  # for Windows

安装

使用pip安装,非常简单(译者注:如果安装出错请检查python版本是否为64位)

# For the latest version on PyPi
pip install PySide6

# For a specific version
pip install PySide6==6.0

还可以通过如下方式安装

pip install --index-url=http://download.qt.io/snapshots/ci/pyside/6.0.0/latest pyside6 --trusted-host download.qt.io

(译者注:http://download.qt.io/snapshots/ci/pyside/6.0.0/latest/pyside6/ 截图如下,从win_amd64的字样来看,貌似Python 32位环境无法正常安装PySide6,我也是换到Python3.9 64位才成功安装的,尴尬笑!)
PySide6 官方下载页面

测试安装

现在已经成功安装了PySide6,来拉出来溜溜~~~

import PySide6.QtCore

# Prints PySide6 version
print(PySide6.__version__)

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

简单应用示例

既然已经安装完成,不能免俗的要来个“Hello Word”以示致敬。

  1. 创建一个名为 hello _ world.py 的新文件,并复制如下代码:
import sys
import random
from PySide6 import QtCore, QtWidgets, QtGui

PySide6 的Python模块支持子模块导入,如上我们导入了QtCore, QtWidgets, QtGui 3个子模块。
2. 定义名为 MyWidget 的类,它继承了 QWidget 类 并包含了 QPushButtonQLabel 2个组件 :

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.layout.addWidget(self.text)
        self.layout.addWidget(self.button)
        self.setLayout(self.layout)

        self.button.clicked.connect(self.magic)

    @QtCore.Slot()
    def magic(self):
        self.text.setText(random.choice(self.hello))

MyWidget 类定义了一个magic函数,该函数从 hello 列表中随机选择一个值。当您单击该按钮时,将调用这个magic函数并显示输出。

  1. 最后添加一个 main 函数,实例化 MyWidget 并显示它:
if __name__ == "__main__":
    app = QtWidgets.QApplication([])

    widget = MyWidget()
    widget.resize(800, 600)
    widget.show()

    sys.exit(app.exec_())

运行示例
Bingo~,它跑起来了,点击按钮试试能收到哪国语言的问候!

扩展阅读

Qt Designer 最新中文手册文档(Qt6)

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐