PySide2入门--PySide2介绍与配置-程序员宅基地

技术标签: python  笔记  pycharm  pyside2  

前言

  因为有对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入门阶段,本文中倘若出现错误,还望各位读者在评论中指出。衷心感谢每位看到本文的读者!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_50616665/article/details/122683801

智能推荐

MySQl建库建表及增删改查_头歌实践教学平台数据库用户数据库的创建及删除-程序员宅基地

文章浏览阅读427次。通过可视化工具建库建表创建数据库CREATE DATABASE studb2 CHAR SET utf8;切换数据库(使用use 将数据库切换到 studb2)USE studb2 ;在studb2 中创建名为t_stu的表CREATE TABLE t_stu( sid VARCHAR(10) , sname VARCHAR(20), age INT, height FLOAT , weight DOUBLE)CHAR SET utf8_头歌实践教学平台数据库用户数据库的创建及删除

readelf_windows readelf-程序员宅基地

文章浏览阅读120次。系统里的目标文件是按照特定的目标文件格式来组织的,各个系统的目标文件格式都不相同。从贝尔实验室诞生的第一个Unix系统使用的是a.out格式(直到今天,可执行文件仍然称为a.out文件)。Windows使用可移植可执行(PortableExecutable,PE)格式。Mac OS-X使用Mach-O格式。现代x86-64Linux和Unix系统使用可执行可链接格式(Executable and Linkable Format,ELF)。_windows readelf

详解冬奥冠军背后的AI黑科技-程序员宅基地

文章浏览阅读3.6k次。用人工智能普惠体育发展。

form表单提交的几种方式_提交表单-程序员宅基地

文章浏览阅读10w+次,点赞92次,收藏495次。表单提交方式一:直接利用form表单提交html页面代码:<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>Insert title here</title></head><body><form action="h..._提交表单

Unity Spine SkeletonGraphic 动画重复播放 过度残影透明渐变Bug 解决方案_unity skeletongraphic-程序员宅基地

文章浏览阅读5.1k次。Unity Spine SkeletonGraphic 重复播放 过度残影Bug 解决方案不推荐使用SetToSetupPose和Setup Pose相关,代码直接贴上/// <summary>/// Spine播放设置/// </summary>/// <param name="trackIndex">填写0</param>/// <param name="animationName">动画名</param>/// &l_unity skeletongraphic

高斯分布3——边缘概率与条件概率_高斯分布的条件概率-程序员宅基地

文章浏览阅读3.5k次。一、推导过程:二、结果:边缘分布x1,x2 各自依然服从 μi,写反差矩阵 Σii 的多元高斯分布;条件概率分布给定 xj 求 xi 的分布:μi|j=μi+ΣijΣ−1jj(xj−μj)Σi|j=Σjj−ΣTijΣ−1iiΣij..._高斯分布的条件概率

随便推点

解决redis超时io.lettuce.core.RedisCommandTimeoutException: Connection timed out after 5s-程序员宅基地

文章浏览阅读5.3k次。报错内容:io.lettuce.core.RedisCommandTimeoutException: Connection initialization timed out. Command timed out after 1 minute(s) at io.lettuce.core.internal.ExceptionFactory.createTimeoutException(ExceptionFactory.java:65) ~[lettuce-core-6.1.4.RELEASE.j..._io.lettuce.core.rediscommandtimeoutexception: connection initialization time

基于OFDM+64QAM系统的载波同步matlab仿真,输出误码率,星座图,鉴相器,锁相环频率响应以及NCO等-程序员宅基地

文章浏览阅读454次。正交频分复用(OFDM)是一种在现代通信系统中广泛使用的调制技术,它具有高效的频谱利用和抗多径衰落等特点。64QAM(64-ary Quadrature Amplitude Modulation)是一种调制方式,可以在每个符号中传输更多的位信息。在OFDM系统中,保持载波同步对确保数据传输的可靠性至关重要。_基于ofdm+64qam系统的载波同步matlab仿真,

Springboot毕设项目超市商品销售管理系统37x2w(java+VUE+Mybatis+Maven+Mysql)_vue+springboot+mybatis商品管理系统-程序员宅基地

文章浏览阅读67次。Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。若包含,则为maven项目,否则为非maven项目。Springboot毕设项目超市商品销售管理系统37x2w(java+VUE+Mybatis+Maven+Mysql)Springboot + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。其他版本理论上也可以。_vue+springboot+mybatis商品管理系统

关掉\禁用win7自动配置ipv4地址的方法 默认网关自动消失的解决办法_禁止修改网关命令-程序员宅基地

文章浏览阅读3w次,点赞2次,收藏4次。转载自: http://blog.csdn.net/zouqin369/article/details/6913692 今天去公司设置好IP后,无论怎么样都上不了internet,再次打开本地后发现默认网关自动消失,cmd下输入ipconfig后的现象如下: 物理地址. . . . . . . . . . . . . : 00-22-64-55-76-8F DHCP 已启用_禁止修改网关命令

Extjs4.2 window加载HTML,父子页面html传参_extjs中打开网页怎么传参-程序员宅基地

文章浏览阅读482次。Extjs的窗口是可以加载自己的HTML的,但这样两个页面就相当独立了,传参是个问题 ,网上也没有很好的解答清楚,猫猫今天就说清楚这个模式的传参要点。_extjs中打开网页怎么传参

推荐文章

热门文章

相关标签