PyQt5 资源管理

1、qrc 文件

pyqt 都用 qrc 文件 来管理软件内部的资源文件(如图标文件,翻译文件等)。qrc文件的编写格式如下:

<RCC version="1.0">
	<qresource prefix="images">
		<file alias="logo">Resources/images/icon.ico</file>
	</qresource>
</RCC>

在这里插入图片描述

2、直接引用

icon = QIcon("Resources/images/icon.ico")

3、pyrcc5 将qrc文件生成对用py文件引用

3.1 qrc转换为py

pyrcc5 resources.qrc -o resources.py


在这里插入图片描述

生成resources.py文件

  • qt_resource_data 资源文件内容数据
  • qt_resource_name 资源文件名称
  • qt_resource_struct 资源结构
# -*- coding: utf-8 -*-

# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2)
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore

qt_resource_data = b"... ..."

qt_resource_name = b"... ..."

qt_resource_struct_v1 = b"... ..."

qt_resource_struct_v2 = b"... ..."

qt_version = [int(v) for v in QtCore.qVersion().split('.')]
if qt_version < [5, 8, 0]:
    rcc_version = 1
    qt_resource_struct = qt_resource_struct_v1
else:
    rcc_version = 2
    qt_resource_struct = qt_resource_struct_v2

def qInitResources():
    QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)

def qCleanupResources():
    QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)

qInitResources()

3.2 代码引用

导入 resources.py文件

资源路径::/【prefix】/【alias】 或都没有设置 :/【文件名称包含后缀】

icon = QIcon(":/images/logo") #一种情况有问题,需要配置prefix、alias

在这里插入图片描述

* 其他参考

在PyQt中使用qrc/rcc资源系统(PySide6-PyQt5)

猜你喜欢

转载自blog.csdn.net/qq_23452385/article/details/131869979
今日推荐