PyQt5 打包程序包含图片资源

本文介绍了如何在Python PyQt5应用中整合资源文件,通过Qt的QRC文件管理图片,并使用pyrcc5工具将其转换为Python模块。然后,详细阐述了使用PyInstaller进行单文件打包的过程,确保图片资源能够正确地被打包进最终的可执行文件中,实现程序的完整运行。
摘要由CSDN通过智能技术生成

1 添加资源文件:

所有文件显示如下
在这里插入图片描述
images.qrc包含资源文件:

<RCC>
    <qresource prefix="/">
        <file>up.png</file>
        <file>down.png</file>
        <file>left.png</file>
        <file>right.png</file>
		<file>search.png</file>
    </qresource>
</RCC>

2 使用命令生成 images.py:

pyrcc5 -o images.py images.qrc

images.py包含图片的信息。

test.py如下:
将images.py 当模块导入,使用如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from PyQt5.QtWidgets import *
from PyQt5.QtCore import pyqtSignal,QPoint
from PyQt5.QtGui import QIcon
from images import *

class  Demo(QWidget):
    def __init__(self):
        super(Demo, self).__init__()
        self.setWindowTitle("打包工具包含图片资源")
        self.resize(300,300)
        self.mainlayout = QGridLayout(self)
        self.up_btn    = QToolButton( )
        self.up_btn.setIcon(QIcon(":/up.png"))
        self.up_btn.setFixedSize(100,100)

        self.down_btn  = QToolButton()
        self.down_btn.setIcon(QIcon(":/down.png"))
        self.down_btn.setFixedSize(100,100)

        self.left_btn  = QToolButton()
        self.left_btn.setIcon(QIcon(":/left.png"))
        self.left_btn.setFixedSize(100,100)

        self.right_btn = QToolButton()
        self.right_btn.setIcon(QIcon(":/right.png"))
        self.right_btn.setFixedSize(100,100)

        self.mainlayout.addWidget(self.up_btn  ,0,1,1,1)
        self.mainlayout.addWidget(self.left_btn, 1, 0, 1, 1)
        self.mainlayout.addWidget(self.right_btn, 1, 2, 1, 1)
        self.mainlayout.addWidget(self.down_btn, 3, 1, 1, 1)

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    win = Demo()
    win.show()
    sys.exit(app.exec_())

3 pyinstaller 打包

pyinstaller -Fw test.py -i 3.ico

程序运行效果如下:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值