2

我正在尝试为 QWebView 设置外部 CSS:

ui->webView->settings()->setUserStyleSheetUrl( QUrl::fromLocalFile(":/default.css") );

其中仅包含:

body { color: red; }

但它在任何页面上都不起作用(没有红色)

我也仔细检查了:

ui->webView->page()->mainFrame()->toHtml();

但是没有应用 CSS。

4

2 回答 2

4

显然,QUrl::fromLocalFile不适用于资源文件。此论坛主题中讨论了该问题和解决方法:

不仅 qrc 方案(通常)不与任何应用程序相关联,而且请记住资源是在可执行文件中编译的。第三方程序应该如何访问它们?

解决方法可能是将文件从资源复制到临时文件/目录,然后使用 QUrl::fromLocalFile + QDesktopServices::openUrl。

于 2012-03-15T12:08:01.957 回答
0

一个更简单的解决方案是使用

ui->webView->settings()->setUserStyleSheetUrl(QUrl("qrc:/filename.css"));
如果您从应用程序本身打开资源,则根本不需要使用 QUrl::fromLocalFile()。除非将 URL 传递给外部应用程序,否则不需要将其写入外部文件。

于 2014-09-04T16:24:44.500 回答