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

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\\子目录下即可

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


http://www.kler.cn/a/555543.html

相关文章:

  • 庙算兵棋推演AI开发初探(5-数据处理)
  • 阿里云子账号管理ECS权限配置全指南
  • Canvas进阶-2、可视化应用
  • C# 中关于补位的写法 PadLeft,PadRight 函数
  • 猎板PCB百科——键盘PCB
  • cesium(vue)一些面试问题(包含Three.js)
  • el-tree选中数据重组成树
  • 【Python爬虫(24)】Redis:Python爬虫的秘密武器
  • AI 编程助手 cursor的系统提示词 prompt
  • 基于大数据的工业废水处理解决方案分享
  • Python迭代器知多少
  • 网络运维学习笔记 014网工初级(HCIA-Datacom与CCNA-EI)ACL访问控制列表
  • DeepSeek大模型下半场:开源、普惠与生态重构的技术革命
  • redis的缓存击穿,雪崩,穿透
  • git空文件夹不能提交问题
  • acm培训 part 7
  • VBA脚本将DeepSeek嵌入Word中教程
  • 【C++】实现一个JSON解析器
  • 【小游戏】C++控制台版本俄罗斯轮盘赌
  • JavaEE-SpringBoot快速入门