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

obs-studio/UI/obs-app.cpp

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:///部分(如果存在)被删除,然后将该字符串理解为路径。

但是对我来说,这似乎是一个未记录的功能,因此最好避免使用。

关于c++ - 是否可以在Qt中将文件路径传递给setStyleSheet(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45885242/

10-11 02:37