天天看點

PyQt5 資源檔案

先來更正上一篇中的筆誤,設定類類名應為QSettings,多一個“s”。

from PyQt5.QtCore import QSettings

為了解決圖示檔案(以及幫助檔案和其它一些較小的檔案)與應用程式目錄不比對 或者 易丢失 的問題,在PyQt中,可以将多個圖示檔案打包成資源檔案,再編譯成一個.py 檔案以供應用程式調用。步驟如下:

首先,要建立一個還有拟使用圖示檔案細節的 .qrc 檔案:

假定檔案的名字為 my_resource.qrc,檔案的内容如下:

<RCC>

<qresource prefix="icon">

<file alias="copy">editcopy.png</file>

<file alias="cut">editcut.png</file>

<file alias="justify">textjustify.png</file>

<file>editpaste.png</file>

<file alias="new">filenew.png</file>

</qresource>

<qresource prefix="html">

<file alias="1">sdf.html</file>

<file alias="2">sdf2.html</file>

</qresource>

</RCC>

.qrc 檔案是一種簡單的XML格式的檔案,可通過手寫完成(也可以自編小程式代替手寫),還可以Qt 設計師 的 資源浏覽器建立(從pip安裝 pyqt5-tools 即可完成Qt Designer程式的安裝,使用Qt Designer可以通過拖動部件的方式很友善建立應用程式的使用者界面,後續會有介紹):

PyQt5 資源檔案

通過對話框,可選擇要加載的檔案(可多選),可以給已選的檔案加别名。最後點OK 即可生成相應的 .qrc 檔案。

PyQt5 資源檔案

然後通過指令行,用 pyrcc5 -o指令就可以将 .qrc 檔案編譯為 .py 檔案。

可參考以下批處理指令:

e:

cd "E:\Python36\MyPythonFiles\MyPyQt5\主視窗程式 - 副本"

pyrcc5 -o my_resource.py my_resource.qrc

最後,在程式頭部導入該py檔案即可:

import my_resource

之後就可以在程式中這樣建立圖示:

QIcon(":/icon/editcut.png")#建立資源檔案時設有字首,所有有二級目錄

因為設定了别名,也可以這樣簡寫:

QIcon(":/cut")

開頭的 ":/" , 會告訴PyQt,這是一個資源。