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\\子目录下即可
本例用到的几个图像粘在下面