当前位置: 首页 > news >正文

pyside6学习专栏(二):程序图像资源的加载方式

pyside6中的QLabel控件可以加载图像和gif动画,可以直接从外部文件加载,也可以从QRC类型的文件(实际是一脚本文件)经编绎生成对应的资源.PY模块文件(就是将qrc文本中指定的资源文件的16制内容写入.py文件)来使用,本文对两种方式作了一简单的示例代码,有详细的注解,希望可以为初学者提供一定的帮助

运行结果如下图

示例窗口代码如下:

# -*- coding: utf-8 -*-
from PySide6.QtWidgets import *
from PySide6.QtGui import QPixmap, QMovie
import sys

#在design.exe中加工的ui界面文件(如ui_Form1.ui),按下行代码在控制台中编绎成PY文件(如ui_Form1.py),同要使用的模块文件放在一起
#pyside6-uic ui_Form1.ui -o ui_Form1.py   #注意一般要先运行下代码,再将此命令文本粘到终端命令行中执行才不会报错,如错误处理不了,改成绝对路径就可以了
#在design.exe中加工的qrc文件(如01.qrc),按下行代码在控制台中编绎成PY文件(如RCC01.py),同要使用的模块文件放在一起
#pyside6-rcc 01.qrc -o RCC01.py
import RCC01  #将上行编绎成功的资源模块文件RCC01.py导入,以便使用各种资源
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        hbox = QHBoxLayout(self)
        #有别名的png图象资源用法
        pixmap = QPixmap(":PNG/png01")     #QTC编辑器的的名称为Res/1.png,别名为png01,用":PNG/Res/1.png"将显不出图象,只能用别名png01,同时注意大小写要一致
        #pixmap = QPixmap("./res/1.png")   #对比不用QRC文件,直接从外部文件加载,示例文件位于模块文件的res\子目录下
        lbl01 = QLabel(self)
        lbl01.setPixmap(pixmap)
        hbox.addWidget(lbl01)
        #无别名的png图象资源用法
        pixmap = QPixmap(":PNG/Res/2.png")   #无别名的资源用法要同设计器中的名称一致(注意区分大小写),如设计器中的PNG分类下的文件名称为Res/3.png(因是从模块文件下的res子目录中导入到QRC文件中的,所在资源文件名前加了Res/)
        lbl02 = QLabel(self)
        lbl02.setPixmap(pixmap)
        hbox.addWidget(lbl02)
        #有别名的GIF资源用法
        movie = QMovie(":GIF/gif01")         #QTC编辑器的的名称为Res/1.gif,别名为gif01,用":GIF/Res/1.gif"将显不出图象,只能用别名gif01,同时注意大小写要一致 
        lbl03 = QLabel(self)
        lbl03.setMovie(movie)
        movie.start()
        hbox.addWidget(lbl03)

        self.setLayout(hbox)
        self.resize(600,400)
        self.setWindowTitle('标签控件显示res资源中的图片')
        
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec())

示例QRC文件(实际为一脚本文件)如下,可copy至记事本另存为1.qrc即可

<RCC>

  <qresource prefix="PNG">

    <file alias="png01">Res/1.png</file>

    <file>Res/2.png</file>

    <file alias="png03">Res/3.png</file>

    <file alias="png04">Res/4.png</file>

  </qresource>

  <qresource prefix="GIF">

    <file alias="gif01">Res/1.gif</file>

  </qresource>

</RCC>

<RCC>

  <qresource prefix="PNG">

    <file alias="png01">Res/1.png</file>

    <file>Res/2.png</file>

    <file alias="png03">Res/3.png</file>

    <file alias="png04">Res/4.png</file>

  </qresource>

  <qresource prefix="GIF">

    <file alias="gif01">Res/1.gif</file>

  </qresource>

</RCC>

#在design.exe中加工的qrc文件(如01.qrc),按下行代码在控制台中编绎成PY文件(如RCC01.py),同要使用的模块文件放在一起

#pyside6-rcc 01.qrc -o RCC01.py

示例用到的几个图像文本1.png,2.png,3.pgn,4.png,2.gif等请自行准备并copy至代码文件下新建一.\\Res\\子目录下即可

本例用到的几个图像粘在下面

相关文章:

  • Python中常见库 PyTorch和Pydantic 讲解
  • Python Cookbook-2.2 写入文件
  • ollama run deepseek-r1:1.5b改变默认下载路径
  • 国产编辑器EverEdit - 文本编辑器的关键特性:文件变更实时监视,多头编辑不掉坑
  • LeetCode刷题---哈希表---648
  • 基于springboot校园健康系统的设计与实现(源码+文档)
  • deepseek:推荐一个免费没有广告的电脑桌面备忘录
  • TikTok账户安全指南:如何取消两步验证?
  • easyexcel 2.2.6版本导出excel模板时,标题带下拉框及其下拉值过多不显示问题
  • 【Python爬虫(27)】探索数据可视化的魔法世界
  • Pytorch实现之ISRGAN高分辨率图像生成训练自己的低分辨率图像
  • 3dmax噪波制作镜头震动动画
  • 【网络编程】TCP连接connect几次syn之后一直返回EINVAL问题
  • 使用Geotools读取DEM地形数据实战-以湖南省30米数据为例
  • 模电知识点总结(4)
  • leetcode:3110. 字符串的分数(python3解法)
  • 深入学习解析:183页可编辑PPT华为市场营销MPR+LTC流程规划方案
  • 成员函数定义后面加const是什么功能:C++中const成员函数的作用
  • DP-最长上升子序列
  • 【git】提交修改、回撤、回滚、Tag 操作讲解,与reset (--soft、--mixed、--hard) 的区别
  • 上海经信委:将推动整车企业转型,加强智能驾驶大模型等创新应用
  • 钱学森数据服务中心在沪上线,十万个数字资源向公众开放
  • 波音CEO称中方因中美“贸易战”停止接收波音飞机,外交部回应
  • 大卫·第艾维瑞谈历史学与社会理论③丨尼古拉斯·卢曼与历史研究
  • 人民日报开新栏,冼星海之女追忆父亲创作《黄河大合唱》
  • 生态环境部:我国正在开展商用乏燃料后处理厂的论证