百度到的PyQt的添加資源大部分都是通過Qt Creater添加資源的,适用于拖拽形成的界面。
問題一:純粹手寫的界面,添加資源呢?
檔案夾路徑:
|----img
|--aa.jpg
|----view
|---View.py
Main.py
問題二:
在如上顯示的檔案夾下,View.py的界面在View.py中調用能正常顯示,如果在Main.py中調用View.py,圖檔資源就不能正常顯示了。
個人注解:
出現問題二的原因是:相對路徑和絕對路徑的問題。
通過絕對路徑 + 相對路徑的方式:
在View.py界面中擷取View.py的絕對路徑,然後添加圖檔資源相對于View.py的位置
代碼如下:
注:__file__隻能在腳本檔案中使用,不能在控制台下使用。
二次問題:
cxfreeze打包後 原來的資源檔案又不能顯示了。。。。。。
在GUI上添加了個QLabel顯示某一張圖檔的路徑:
整體工程的檔案夾路徑:
如圖:
圖檔直接放在img檔案夾下,view檔案夾下視圖Widget界面的py代碼,Main.py是主程式的入口。
①、
未指定打包EXE的參數,直接 執行 python setup.py build
生成的exe檔案夾路徑:
注:img檔案是自己手動拷過來的。檢視library.zip檔案可以看到全部的py檔案 編譯後都放在這裡邊了。
②、打包成EXE後的:
如圖:
③、未打包成EXE前的:
解決方案:
在qt designer中添加資源文本。
如上圖,資源浏覽器在qt designer 中的右下角。
點選上邊紅圈标記的鉛筆型的按鈕,出現
左側列出的是qrc資源檔案,右側是每個資源檔案下的資源。
添加qrc資源檔案,添加字首,添加檔案。選中右側添加的檔案點選右鍵還可以改變别名。
注:添加檔案時,如果添加的檔案 和 建立的qrc文本不在一個檔案夾,會提示是否複制過來。
改變别名後:
點選OK後儲存。
比較挫的地方是儲存後qrc檔案還得編譯才行。
注:如果是在qt designer中添加的資源檔案,是在eric的resource中看不到的,得添加才行。
編譯後會多出來一個對應的 xxx_rc.py的檔案
然後代碼中就可以使用資源了。
當然,還得引入生成的檔案:
上圖中的 ":/aa/icon_4.png" 就相當于外部的資源檔案的路徑了,其中aa是剛才添加的字首,相當于檔案的路徑了
":/aa/aa" 中的第二個aa是剛才起的别名,":/aa/aa" 等同于 ":/aa/icon_3.png"
判斷代碼是否被固化: