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