Qt样式设置加载资源路径问题-记录一个坑

6月8日14:55

经过查阅资料和测试,发现以前的认识是错误的,更正一下,以免误导他人。最后感叹一句刘大神的qt宝典内容丰富呀。

 

加载qss文件,qApp可以加载qss文件的内容,也可以加载文件名。

  • (1)如果加载文件内容,则qss文件中引用图片资源的相对路径起始路径是从程序执行文件的目录开始的。
  • (2)如果加载文件名,则qss文件中引用的图片的相对路径可以是相对于qss文件的目录设置。
  • 如果相对路径是相对于qss文件所在目录,而采用(1)种方案,则setStylesheet函数是相对于应用程序的目录来寻找的,因此,在加载的时候出现如下错误:

7eedaa28b756445d96fc2a98561e8cc0.png

 

 

此时,通过修改程序当前目录的方式,以达到保持qss文件和图片文件的独立性的效果,计划通过修改当前工作目录的方式来实现,代码如下:

//记录当前路径
    QString appDir = QCoreApplication::applicationDirPath();
    QString tempPath = appDir + "/config/themes/";
    qDebug() << "old:" << QDir::currentPath();
    bool jg = QDir::setCurrent(tempPath);
    qDebug() << "路径设置为:" << QDir::currentPath() << "结果:" << jg;
    qApp->setStyleSheet(qss);
    QDir::setCurrent(appDir);

但是,通过试验,发现该函数还是以应用程序目录为起点进行搜索的,所以失败。

最终解决方法:

当加载文件名时,在加入字符串前加'file:///'字符串即可。此时可以按照第二种方式加载qss文件效果。

之前忘记加file:///了,所以失败,而这个在刘典武的qt宝典里面明确写了。

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值