前言

  因为有对GUI界面开发的需求,我前些阵子接触过Qt,一套著名的跨平台的C++图形界面框架。Qt开发最有效的Qt creator,跨平台且集成多款工具,上手体验十分友好。但是,由于C++导入第三方库相对麻烦,而且现有的代码都基于Python实现。此处将介绍Qt相应的Python模块——PySide。

为什么不选择PyQt?

  PySide2和PyQt5同样对应的Qt5框架,PyQt甚至要比PySide出现更早,社区更完备、中文文档更丰富。但是,值得注意的是:二者的许可证存在着差异。
  PyQt采用的是GPLv3许可证和需要购买版权的商业许可证发布的,该许可证允许开发专有应用程序,可以由开发者选择。GPLv3许可证,意味着用户使用PyQt就需要开源,闭源商用的,就需要承担相应的法律后果。
  PySide采用的是LGPL协议,对开发者商用的要求相对宽松一下。动态链接PySide的内容可以闭源商用,不过注意使用pyinstaller -F打包成单个可执行文件的方式,依旧是违背该许可证的。其次,PySide由Nokia维护(同样是Qt的前研发公司),而PyQt由英国开发商Riverbank维护。论技术前景,还是PySide更广阔一下。
  不过,对于GUI层面缺乏经验的初学者而言,如果仅仅为了学习的需要。PyQt未免不是更好的选择,更多的文献资料,丰富的社区,更有利于解决技术上的问题。

PySide2与PySide6的版本选择

  毋庸置疑,PySide6功能比PySide2更丰富一下。PySide6支持的是Qt6版本,而PySide2支持的是Qt5以下版本。但是,PySide6开发晚,部分模块不完善。之前打算做图表的时候,发现PySide6不支持QCharts模块…无奈之下,还是回退到PySide2。
(有段时间没接触PySide6,现在可能模块已经完善了。)

PySide2 配置过程

注:本文使用的IDE是Pycharm,如果你使用Qt Creator请查看其他博文。

(1)PySide2安装

  使用pip指令下载,在Pycharm终端内输入:
    pip install PySide
  如果觉得下载速度慢,可以换用国内镜像,以豆瓣为例:
    pip install pyside2 -i https://pypi.douban.com/simple/

(2)配置Pycharm外部工具

  使用PySide2框架需要三个工具辅助开发,
分别是Qt Designer、PySide-uic以及PySide-rcc,三者功能如下:

  Qt Designer:可视化编辑UI界面,生成.ui文件。
  PySide-uic: 将.ui文件转换为.py文件,以便修改和导入。
  PySide-rcc: 将.qrc文件(资源文件)转换为.py文件。

  首先,从Python安装目录(或者其他虚拟环境目录)找到这些程序,
程序通常在如下目录:
  [安装目录]\Lib\site-packages\PySide2\designer.exe
  [安装目录]\Scripts\pyside2-rcc.exe
  [安装目录]\Scripts\pyside2-uic.exe
  注:名称一定含有pyside2,如果你发现rcc.exe和uic.exe,请不要用之替代。因为这两个程序生成的是C/C++代码。
  pyside2-rcc.bat和pyside2-uic.bat同样可以配置。(因版本而异)

  然后,从Pycharm菜单栏打开 文件>设置>工具>外部工具
在这里插入图片描述
在这里插入图片描述
  点击+号,添加外部工具。各项工具的配置信息如下:

    Qt Designer:
    名称:任意即可(建议QtDesigner)
    程序:程序所在的路径
    工作目录:$ProjectFileDir$

    pyside2-rcc:
    名称:任意即可(建议ui2py,这样一目了然)
    程序:程序所在目录
    参数:$FileName$ -o $FileNameWithoutExtension$_rc.py
    工作目录:$FileDir$

    pyside2-uic:
    名称:任意即可(建议qrc2py,理由同上)
    程序:程序所在目录
    参数:-o $FileNameWithoutExtension$_ui.py $FileName$
    工作目录:$FileDir$

  打开这些工具,只需要从Pycharm菜单栏访问 工具>External Tools>xxx

  注意:使用pyside2-uic和pyside-rcc时需从左侧选择待处理的文件,然后再从菜单栏选中工具,会在同目录下生成.ui或.qrc文件同名的.py文件。注意.py文件命名,防止文件被覆盖!

  至此,即可通过Pycharm进行PySide2开发。

(3)简述PySide2开发流程

  以个人习惯为例,简单介绍PySide2的开发流程:

  1)打开Qt Designer工具,创建窗口,初步设计界面和简单逻辑。
  2)搜集图像、音频等,添加到.qrc资源文件内。
  3)编写qss样式,进一步美化界面,保存成.qss文件。
  4).ui文件转.py文件(动态加载UI的忽略)和.qrc文件转.py文件。
  5)另建.py文件,创建类加载UI界面,导入.qrc生成的.py文件。
  6)编写类的成员函数,逐一实现复杂逻辑。
  7)另建.py文件,在main函数中组建各代码模块。
  8)使用pyinstaller、py2exe等工具对代码进行打包。

  限于篇幅,各部分的细节将不逐一讲解,有心的读者可以查阅其他博文了解更多。

结束语

  由于本人还在PySide2入门阶段,本文中倘若出现错误,还望各位读者在评论中指出。衷心感谢每位看到本文的读者!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐