是否可以将文件路径传递给Qt中的setStyleSheet()

时间:2017-08-25 15:54:06

标签: c++ qt filepath qtstylesheets

我在obs-studio中找到了以下代码:

obs-studio/UI/obs-app.cpp

QString mpath = QString("file:///") + path.c_str();
setStyleSheet(mpath);

file:///开头的文件路径直接传递给setStyleSheet()

官方参考中未提及此用法。但是,obs-studio不会重新定义此功能,表明它是Qt功能。

这应该有效吗?我在我的代码中尝试了但是失败了。

1 个答案:

答案 0 :(得分:2)

如果查看Qt文档,则没有任何迹象表明支持将任何URL作为参数传递给setStyleSheet()。此外,如果您查看definition of QApplication::setStyleSheet,则无法处理网址。

样式表由QStyleSheetStyle对象代理。在该对象中,您会发现该字符串最终位于this method of the CSS parser。确实有读取文件的功能。

将字符串内容视为文件路径而不是样式表标记can be found here的逻辑。 file:///部分(如果存在)将被删除,然后该字符串将被理解为路径。

然而,对我来说,这似乎是一个无证的功能,因此最好避免使用。