使用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會自動把它加到路徑之中