PyQt5 技巧篇-解决相对路径无法加载图片问题,styleSheet通过"相对"路径加载图片,python获取当前运行文件的绝对路径。

时间:2022-07-25
本文章向大家介绍PyQt5 技巧篇-解决相对路径无法加载图片问题,styleSheet通过"相对"路径加载图片,python获取当前运行文件的绝对路径。,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Python获取绝对路径

先说一下python获取当前运行文件绝对路径的方法:

import os
url = os.path.dirname(os.path.abspath(__file__))   # 文件夹
url = os.path.abspath(__file__)   # 文件

运行效果:

C:UsersAdministratorDesktoplanzao_Robotrobotrobot_ui
C:UsersAdministratorDesktoplanzao_Robotrobotrobot_uihello.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)")

图片就顺利的加载出来了。哈哈!