天天看点

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获取当前运行文件的绝对路径。

喜欢的点个赞❤吧!