使用资源文件为QWebView设置外部CSS

时间:2012-03-15 01:20:29

标签: qt4 qt4.7

我正在尝试使用以下方法为QWebView设置外部CSS:

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

仅包含:

body { color: red; }

但它不适用于任何页面(没有任何内容为红色)

我也经过双重检查:

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

但没有应用CSS。

2 个答案:

答案 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传递给外部应用程序,否则不需要将其写入外部文件。