我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PySide6精简教程(附图文!)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PySide6精简教程(附图文!)

一、PySide6概述

近几年,受益于人工智能的崛起,Python语言几乎以压倒性优势在众多编程语言中异军突起,成为AI时代的首选语言。在很多情况下,我们想要以图形化方式将我们的人工智能算法打包提供给用户使用,这时候选择以python为主的GUI框架就非常合适了。

QT是众多GUI框架里面非常著名的一款,它本身由C++开发,天然支持基于C++的GUI编程,编出来的图形化软件在当今众多GUI框架中运行效率几乎是天花板级别的,拥有完善的第三方库,极其适合数字图像处理、文档排版、多媒体、3D建模等专业软件开发。与此同时,QT还有一个强大的功能:支持跨平台,简单来理解,就是我们只需要编写一套代码就可以同时在windows、mac、linux上运行。

值得一提的是,QT对Python也有完善API支持,意味着我们可以规避C++编程的苦恼,使用更简洁的Python来代替C++开发QT应用,同样具备跨平台等优势。需要说明的是,目前有两种QT对应的Python工具:PySide和PyQt。这里首先介绍下两者的区别。

PySide是Qt公司的产品,PyQt是第三方公司的产品,二者用法基本相同,不过在使用协议上却有很大差别。PySide可以在LGPL协议下使用,PyQt则在GPL协议下使用。这两个协议的区别就是如果使用PyQt,那么你开发的软件必须开源,否则就存在被告的风险。而PySide就没有这种约束,不管是开发商业闭源软件还是开源软件,你都可以不开源代码,开不开源是你的自由。从这一点上来看,对于商业公司或者说有商业考虑的软件来说,我更倾向于推荐PySide,更何况PySide还是QT的亲儿子。虽然PySide和PyQt在协议上有不同,但是两者提供的接口几乎是完全一致的。目前市面上PyQt的教程完全适合PySide,因此,对于学习者来说学习任何一个都是可以的。

PySide目前常见的有两个版本:PySide2和PySide6。PySide2由C++版的Qt5开发而来.,而PySide6对应的则是C++版的Qt6。从PySide6开始,PySide的命名也会与Qt的大版本号保持一致,不会再出现类似PySide2对应Qt5这种容易混淆的情况。

在使用层面上,PySide2和PySide6无过多的差异,只有一点需要注意,使用PySide6开发的程序在默认情况下不兼容Windows7系统,这也是Qt6所决定的(即使是C++的QT6也不支持windows7)。

二、安装PySide6

对于PySide开发来说,我们不需要完整的安装几个G的Qt,可以像普通Python库一样直接通过pip安装就行,大概占用300MB空间(需要提前安装好python3以及pip)。

可以使用下面的命令安装:

pip install --upgrade pip
pip install pyside6 -i https://mirror.baidu.com/pypi/simple

通过这样简单的命令就可以完成安装。

基于PySide6开发GUI程序包含下面三个基本步骤:

  • 设计GUI,图形化拖拽或手撸;
  • 响应UI的操作(如点击按钮、输入数据、服务器更新),使用信号与Slot连接界面和业务;
  • 打包发布;

下面我们按照这个步骤来快速实现一遍。

三、设计界面

PySide为我们提供了两种开发界面的方式,一种叫QtWidget,是在网上教程中最常见的方式;另一种叫QML,是一种新型的开发方式,也是Qt正在努力推广的开发方式。在本文中,我们主要使用QtWidget这种方式。

使用QtWidget开发程序时,也有两种基本的使用方法,一种是通过designer开发界面,另一种是用代码手动开发界面。本文的目的是极简快速入门,所以使用designer这种方便的方式进行开发。

我们可以在cmd终端中使用下面的命令启动designer:

pyside6-designer

启动后designer界面如下所示:

这里我们选择Widget,并点击创建,之后打开的界面如下:

让我们来看一下界面里都有什么:

  • 组件选择区:用来选择组件,鼠标选择组件后就可以拖拽到窗口界面上,在本教程中会使用到一部分这里的组件;
  • 工作区:用来布置界面,调整窗口,我们可以把工作区中的窗口随意拖拽、调整大小;
  • 对象查看区:查看界面上共有多少组件,以及它们的布局关系;
  • 属性设置区:设置组件的属性,如文本、大小、名称等;

这里我们先把工作区中的窗口拖放到中间,再从组件选择区里拖拽一个Label组件到窗口上,如下图所示:

之后我们双击窗口里面的Label,输入“你好啊!世界”,我们会发现默认的Label大小并不能完全展示文本,所以我们把Label的宽度拉长(单击Label后,拖住周围的深蓝色方块即可调整大小),如下图所示:

接下来我们保存这个界面(Ctrl+S),或者在菜单栏选择“文件”->“保存”,我们将其保存到桌面一个名为hello的文件夹中,保存命名为hello.ui。

注意,PySide6是不能直接使用ui文件的,我们还需要将其转为py文件。首先cd到hello文件夹中,然后使用命令:

pyside6-uic hello.ui > ui.py

这样我们就会得到一个ui.py文件,我们可以打开看一下,里面都是一些界面代码,如下所示:

# -*- coding: utf-8 -*-
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
    QMetaObject, QObject, QPoint, QRect,
    QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    QFont, QFontDatabase, QGradient, QIcon,
    QImage, QKeySequence, QLinearGradient, QPainter,
    QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QLabel, QSizePolicy, QWidget)

class Ui_Form(object):
    def setupUi(self, Form):
        if not Form.objectName():
            Form.setObjectName(u"Form")
        Form.resize(400, 300)
        self.label = QLabel(Form)
        self.label.setObjectName(u"label")
        self.label.setGeometry(QRect(180, 110, 101, 16))

        self.retranslateUi(Form)

        QMetaObject.connectSlotsByName(Form)
    # setupUi

    def retranslateUi(self, Form):
        Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None))
        self.label.setText(QCoreApplication.translate("Form", u"\u4f60\u597d\u554a\uff01\u4e16\u754c\uff01", None))
    # retranslateUi

如果不使用designer,那么这个ui.py就需要我们手动来写,所以,使用designer可以加快开发速度,减少工作量,提升开发效率。

这里还要个问题要解决,我们使用命令pyside6-uic转换出来的ui.py文件其保存格式不是utf-8,因此我们要用编辑器将其保存为utf-8才可以,否则后面加载该文件会报错:

四、响应UI操作

接下来我们就要写代码来把界面展示出来,新建一个名为hello的py文件:

# 导入sys
import sys

# 任何一个PySide界面程序都需要使用QApplication
# 我们要展示一个普通的窗口,所以需要导入QWidget,用来让我们自己的类继承
from PySide6.QtWidgets import QApplication, QWidget
# 导入我们生成的界面
from ui import Ui_Form
 
# 继承QWidget类,以获取其属性和方法
class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        # 设置界面为我们生成的界面
        self.ui = Ui_Form()
        self.ui.setupUi(self)

# 程序入口
if __name__ == "__main__":
    # 初始化QApplication,界面展示要包含在QApplication初始化之后,结束之前
    app = QApplication(sys.argv)
 
    # 初始化并展示我们的界面组件
    window = MyWidget()
    window.show()
    
    # 结束QApplication
    sys.exit(app.exec_())

注释中包含了详细的代码说明,接下来我们只要执行这个py文件,就可以看到我们的界面了:

五、打包部署

我们最终希望交给用户是一个纯粹的exe可执行文件(可以包含一些dll之类的动态库或配置文件),用户不需要安装Python依赖,直接双击就可以运行展示。下面我们来实现最后的这个环节。

下面主要以windows为例。

首选安装打包工具:

pip install pyinstaller -i https://mirror.baidu.com/pypi/simple
pip install auto-py-to-exe -i https://mirror.baidu.com/pypi/simple

运行:auto-py-to-exe,会自动打开浏览器,然后进入打包部署配置页面,如下图所示:

  • Script Location:选择要打包的py主程序;
  • One File:选生成单一文件;
  • Console Window:选择不显示命令行窗口;
  • Icon:可设置图标;
  • Additional Files:除了主程序以外其它的需要打包的文件;
  • Advanced:可设置UPX(从这里下载 https://upx.github.io/)然后点击“Convert .PY to .EXE”就会自动生成.exe文件了,在当前目录output子目录下。该特性用于进一步压缩exe体积。

最终配置如下所示:

最终在hello文件下会生成output文件夹,其中就生成了打包部署好的exe文件,如下图所示:

到这里本文就完成了一个简单的基于PySide6的项目开发(虽然我们几乎没实现什么功能)。

总结

到此这篇关于PySide6精简教程的文章就介绍到这了,更多相关PySide6精简教程内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PySide6精简教程(附图文!)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PySide6精简教程(附图文!)

PySide6是Qt的Python封装,是QtforPython的组成之一,另一部分是Shiboken,下面这篇文章主要给大家介绍了关于PySide6精简教程的相关资料,需要的朋友可以参考下
2023-02-03

Win10系统怎么精简 Win10系统精简功能图文教程

随着微软彻底放弃win7的更新,win8的弱势,新一代的win10系统则成为了微软着力打造的王牌系统。 作为微软最新的王牌产品,win10系统从功能到外观都有着超过前代产品的亮眼设计和性能体验,然而各种捆绑程序的附加,以及诸多不接地气的系统
2023-05-21

Python2安装pip变得简单,附带图文教程!

Python2是一种广泛使用的编程语言,它的功能强大且易于学习,是很多开发者的首选。然而,在使用Python2进行开发时,我们经常需要安装一些第三方库来扩展其功能。这时候就会遇到一个问题:如何安装pip?Pip是Python的一个包管理工
Python2安装pip变得简单,附带图文教程!
2024-01-18

Discuz! 远程附件设置简明教程

(1)减少服务器流量(2)减轻服务器负载(3)节约 WEB 空间第一、Discuz!5.5 远程附件的设置方法,如图 1 所示配gOdvla置 设置方法:1. 如果某 FTP 帐号对应的空间地址为:http://www.yanshi.cn
2022-06-12

手把手教你python画图(精简实例,一

1、不叨叨,直接上代码import matplotlib.pyplot as pltx = [1,2,3,4,5]y = [0,3,2,7,9]plt.figure()plt.plot(x, y,'r-', lw =5)plt.show()
2023-01-31

win10预览版10125图标提取教程(附图标文件下载)

刚才为大家介绍了Windows 10 build 10125图标更新教程,但很多朋友想亲自尝试一下新版win10图标的效果,今天我们小编就为大家带来win10预览版10125图标提取教程及win10预览版10125图标文件下载,一起来看看吧
2023-06-15

这可能是最简单,精炼,有效的magisk 安装教程,附boot.img 提取方法

准备一台小米手机(小米手机方便解锁)或一台其他解锁后的手机下载magisk github上一搜就找到了,下载最新版本安装包,安装之去手机官网下载rom,找到boot.img文件,找不到?看第四步打开手机设置,关于手机,下载最新完整rom安装
2023-08-19

用360简单免费升级win10图文教程

2015年3月18日,微软宣布与腾讯 、360战略合作,为中国用户免费升级Windows 10。两家公司同样也推出了相应服务和活动促使用户升级。那么我们怎样通python过360进行升级那?下面小编就为大家带来用360简单p
2023-06-17

win7精简版系统一键重装教程

安装win7精简版系统比较普遍的做法是使用U盘安装,也有些用户是下载win7本地安装,现在则有了更为简单的安装方法,那就是在线安装win7,只需要一款在线安装工具就能实现,下面就和大家分享一下方法吧。1、首先我们打开电脑浏览器搜索魔法猪一键
2023-07-10

Android studio安装教程(图文详解,简单搞定)

一 下载 根据自己计算机选择对应版本点击下载 https://developer.android.google.cn/studio 二 安装Android Studio Android Studio 是Google提供的一个Android开
2023-08-16

win7精简版超小iso镜像安装教程

尽管微软已停止对win7系统提供更新和支持,但仍有许多网友喜欢并选择安装使用win7。有些网友倾向于使用精简版的win7系统,但他们下载了超小的win7精简版ISO镜像后不知道如何安装它。下面小编就教下大家安装win7精简版超小iso镜像的
2023-07-17

nodejs 搭建简易服务器的图文教程(推荐)

www文件夹下template文件夹下server.js代码:const express=require('express'); const static=require('express-static'); //托管静态文件 const
2022-06-04

win10占空间怎么办 win10精简功能教程

win10正式版即将推出,很多网友已经提前使用起了预览版,win10占空间怎么办?其实我们可以停用一些功能,下面小编就来教大家一些win10精简功能教程。 win10占空间怎么办 win10精简功能教程 Windows 10 免费升级助手
2023-06-13

Discuz! 远程附件设置图文说明

在论坛后台 => 全局 => 附件设置 => 远程附件:选择“启用远程附件”,然后设置 FTP 帐号信息,如下图所示:然后设置远程附件的目录,如下图所示:远程附件的境像及扩展名设置,如下图所示:设置好以后提交,然后在
2022-06-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录