PyQt5 资源管理

PyQt5使用qrc文件来管理资源,如图标和翻译文件。可以编写qrc文件定义资源,然后通过pyrcc5工具将其转换为Python模块引用。转换后的资源文件包含了数据、名称和结构信息,通过qInitResources和qCleanupResources函数进行注册和注销。代码中引用资源时,可以使用:/prefix/alias或:/文件名的格式。
摘要由CSDN通过智能技术生成

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xhBruce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值