python-PySide6记录

python-PySide6记录


前篇


PyQt6 和 PySide6 对比

PyQt6和PySide6都是用于调用Qt6 API的Python库,使用它们可以轻松在Python语言中创建基于Qt的GUI程序;PyQt6和 PySide6最大的不同表现在发行许可上;

PyQt6是由 Riverbank Computing 公司开发,出现的比较早;它采用 GPLv3许可证和商业许可证发布;这表示你如果使用PyQt6 ,则必须将你的代码进行开源;如果要闭源,则需要购买商业许可;

PySide6是 Qt 官方的库,亲儿子,出现的时间要比PyQt晚的多,这也是很多人知道PyQt不知道PySide的原因;但随着版本的迭代,PySide6越来越强大,作者更看好PySide;

PySide6采用LGPL许可发布,这意味着只要你以调用动态链接库的形式使用 Qt ,你可以以任何形式(商业、非商业、开源、非开源)发布你的程序;


安装

  1. 主要是安装一下几个包

    1
    2
    3
    4
    PySide6
    shiboken6
    PySide6-Addons
    PySide6-Essentials
  2. 在线安装

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ pip3 install PySide6
    Collecting PySide6
    Downloading PySide6-6.6.3.1-cp38-abi3-win_amd64.whl (520 kB)
    ---------------------------------------- 520.6/520.6 kB 1.6 MB/s eta 0:00:00
    Collecting PySide6-Addons==6.6.3.1
    Downloading PySide6_Addons-6.6.3.1-cp38-abi3-win_amd64.whl (111.7 MB)
    ---------------------------------------- 111.7/111.7 MB 4.4 MB/s eta 0:00:00
    Collecting shiboken6==6.6.3.1
    Downloading shiboken6-6.6.3.1-cp38-abi3-win_amd64.whl (1.1 MB)
    ---------------------------------------- 1.1/1.1 MB 2.9 MB/s eta 0:00:00
    Collecting PySide6-Essentials==6.6.3.1
    Downloading PySide6_Essentials-6.6.3.1-cp38-abi3-win_amd64.whl (77.3 MB)
    ---------------------------------------- 77.3/77.3 MB 3.7 MB/s eta 0:00:00
    Installing collected packages: shiboken6, PySide6-Essentials, PySide6-Addons, PySide6
    Successfully installed PySide6-6.6.3.1 PySide6-Addons-6.6.3.1 PySide6-Essentials-6.6.3.1 shiboken6-6.6.3.1
  3. 离线安装

    1. 去阿里镜像下载一下四个包 - https://mirrors.aliyun.com/qt/snapshots/ci/pyside/6.6.3.1/35097fc6cc72d9a2616ebc3c35515d09e1704478/pyside6/

      1
      2
      3
      4
      PySide6_Addons-6.6.3-cp38-abi3-win_amd64.whl
      PySide6_Essentials-6.6.3-cp38-abi3-win_amd64.whl
      PySide6-6.6.3-cp38-abi3-win_amd64.whl
      shiboken6-6.6.3-cp38-abi3-win_amd64.whl
    2. 新建一个 requirements.txt 文件, 内容如下

      1
      2
      3
      4
      PySide6==6.6.3
      PySide6_Addons==6.6.3
      PySide6_Essentials==6.6.3
      shiboken6==6.6.3
    3. cd 到这个目录下, 执行安装命令

      1
      $ pip3 install --no-index --find-links=. -r requirements.txt

可视化编辑

  • 安装完 PySide6 后, 在对应的安装目录下能找到可视化编辑程序 designer.exe, 如: D:\Python38\Lib\site-packages\PySide6\designer.exe

踩坑

QUiLoader 卡主进程


窗口 show 完后立马消失


QThread 执行后闪退

  • 报错: QThread: Destroyed while thread is still running

  • 原因是 QThread 对象里面的方法还未执行完, QThread 对象就被释放了

  • 解决办法: 起一个持久化变量引用住 QThread 对象即可