天天看點

PyQt5 技巧篇-解決相對路徑無法加載圖檔問題,styleSheet通過"相對"路徑加載圖檔,python擷取目前運作檔案的絕對路徑。

Python

擷取絕對路徑

先說一下python擷取目前運作檔案絕對路徑的方法:

import os
url = os.path.dirname(os.path.abspath(__file__))   # 檔案夾
url = os.path.abspath(__file__)   # 檔案      

運作效果:

C:\Users\Administrator\Desktop\lanzao_Robot\robot\robot_ui
C:\Users\Administrator\Desktop\lanzao_Robot\robot\robot_ui\hello.py      

styleSheet"相對"路徑加載圖檔

styleSheet用相對路徑我是怎麼試都不管用。加了

:/

在前面也不管用。

好像跟pyqt5自身的繪圖機制有關,父類子類啥的。以後有空可以研究下。

既然隻有絕對路徑管用,那我就用絕對路徑,變相的相對路徑。

我先擷取到運作檔案的決定位置,再根據相對路徑合成新的路徑。

# 擷取絕對路徑
url_father = os.path.dirname(os.path.abspath(__file__))

# 因為styleSheet裡正斜杠才管用,我要把反斜杠轉化為正斜杠
url=""
for i in url_father:
    if(i == "\\"):
        url = url + "/"
    else:
        url = url + i

# 合成新的路徑并使用
self.listView_3.setStyleSheet("background-image:url(" + url + "/image/time5.jpg)")      

圖檔就順利的加載出來了。哈哈!

PyQt5 技巧篇-解決相對路徑無法加載圖檔問題,styleSheet通過"相對"路徑加載圖檔,python擷取目前運作檔案的絕對路徑。

喜歡的點個贊❤吧!