是否可以将文件路径传递给 Qt 中的 setStyleSheet()
Is it possible to pass a file path to setStyleSheet() in Qt
我在obs-studio中找到了如下代码:
QString mpath = QString("file:///") + path.c_str();
setStyleSheet(mpath);
以file:///
开头的文件路径直接传递给setStyleSheet()
。
官方参考中没有提到这个用法。但是obs-studio并没有重新定义这个函数,说明是Qt的函数。
这应该有效吗?我在我的代码中尝试过但失败了。
如果您查看 Qt 文档,没有迹象表明支持将任何 URL 作为参数传递给 setStyleSheet()
。此外,如果您查看 definition of QApplication::setStyleSheet,则没有 URL 处理。
样式表由 QStyleSheetStyle
对象代理。在该对象中,您会发现该字符串以 this method of the CSS parser 结尾。读取文件的功能确实存在。
将字符串内容视为文件路径而不是样式表标记的逻辑 can be found here。 file:///
部分(如果存在)将被删除,然后将字符串理解为路径。
但是对我来说,这似乎是一个未记录的功能,因此最好避免使用。
我在obs-studio中找到了如下代码:
QString mpath = QString("file:///") + path.c_str();
setStyleSheet(mpath);
以file:///
开头的文件路径直接传递给setStyleSheet()
。
官方参考中没有提到这个用法。但是obs-studio并没有重新定义这个函数,说明是Qt的函数。
这应该有效吗?我在我的代码中尝试过但失败了。
如果您查看 Qt 文档,没有迹象表明支持将任何 URL 作为参数传递给 setStyleSheet()
。此外,如果您查看 definition of QApplication::setStyleSheet,则没有 URL 处理。
样式表由 QStyleSheetStyle
对象代理。在该对象中,您会发现该字符串以 this method of the CSS parser 结尾。读取文件的功能确实存在。
将字符串内容视为文件路径而不是样式表标记的逻辑 can be found here。 file:///
部分(如果存在)将被删除,然后将字符串理解为路径。
但是对我来说,这似乎是一个未记录的功能,因此最好避免使用。