我正在尝试使用以下方法为QWebView设置外部CSS:
ui->webView->settings()->setUserStyleSheetUrl( QUrl::fromLocalFile(":/default.css") );
仅包含:
body { color: red; }
但它不适用于任何页面(没有任何内容为红色)
我也经过双重检查:
ui->webView->page()->mainFrame()->toHtml();
但没有应用CSS。
答案 0 :(得分:4)
显然,QUrl::fromLocalFile
不适用于资源文件。 this forum thread中讨论了问题和解决方法:
不仅qrc方案(通常)不与任何关联 应用程序,但请记住,资源是在您的内部编译的 可执行文件。第三方程序如何访问它们?
解决方法可能是将文件从资源复制到 临时文件/目录,然后使用QUrl :: fromLocalFile + QDesktopServices ::的OpenURL。
答案 1 :(得分:0)
更简单的解决方案是使用
ui->webView->settings()->setUserStyleSheetUrl(QUrl("qrc:/filename.css"));如果您从应用程序本身打开资源,则根本不需要使用QUrl :: fromLocalFile()。除非将URL传递给外部应用程序,否则不需要将其写入外部文件。