Qt designer-打包资源文件(引用图片资源)

使用pyqt5引用外部资源文件主要有两种方式,一是将资源文件转换成py文件,二是在程序中通过相对路径引用外部图片资源
下面仅介绍第一种方法

1.创建资源文件

创建一个txt文件,键入如下,再将后缀改成qrc

<rcc version="1.0">
     <qresource>
     </qresource>
</rcc>

随后创建一个新窗体,打开资源管理器进行编辑
在这里插入图片描述
进入资源编辑页面,选中要编辑的资源,并添加资源路径
在这里插入图片描述
点击OK
然后我们发现原来的资源文件变成了下面这样

<RCC>
  <qresource prefix="pic">
    <file>PyQt5-master/Chapter03/images/cartoon1.ico</file>
    <file>PyQt5-master/Chapter03/images/cartoon2.ico</file>
    <file>PyQt5-master/Chapter03/images/cartoon3.ico</file>
    <file>PyQt5-master/Chapter03/images/cartoon4.ico</file>
    <file>PyQt5-master/Chapter03/images/python.jpg</file>
  </qresource>
</RCC>

2.在窗口中使用资源文件

操作窗口文件唉,在窗口中央添加一个label控件,选中,更改其pixmap属性,单击后面按钮,将值改成前面引入的资源

在这里插入图片描述

3.转换资源文件

将资源文件转为py文件(需要注意的是,这里使用的是pyrcc5进行转化,同时为了与窗口文件保持一致,须在转化后的资源文件名字后加_rc

4.编辑逻辑文件

import sys
import apprcc_rc
from PyQt5.QtWidgets import QApplication,QMainWindow
from Mainpic import Ui_Form
class MyMainpic(QMainWindow,Ui_Form):
    def __init__(self,parent=None):
        super(MyMainpic,self).__init__(parent)
        self.setupUi(self)

if __name__=="__main__":
    app=QApplication(sys.argv)
    win=MyMainpic()
    win.show()
    sys.exit(app.exec_())

完成
在这里插入图片描述
补充 :
需要注意的是Qt中图片引入路径,与实际略有不同

self.label.setPixmap(QtGui.QPixmap(":/pic/PyQt5-master/Chapter03/images/cartoon1.ico"))

这是由于我们在编辑资源文件时,加了个“pic”标签,所以Qt会自动把它加到路径之中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章