【问题标题】:Setting external CSS for QWebView with resource file使用资源文件为 QWebView 设置外部 CSS
【发布时间】:2012-03-15 01:20:28
【问题描述】:

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

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

其中仅包含:

body { color: red; }

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

我也仔细检查了:

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

但没有应用 CSS。

【问题讨论】:

  • 路径":/default.css" 指定存储为编译资源的文件。这是你的意图吗?
  • @ArnoldSpence 是的,我用的是 Qt 的资源文件

标签: qt4 qt4.7


【解决方案1】:

显然,QUrl::fromLocalFile 不适用于资源文件。问题和解决方法在this forum thread 中讨论:

不仅 qrc 方案(通常)不与任何 应用程序,但请记住,资源是在你的内部编译的 可执行。第三方程序应该如何访问它们?

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 2011-01-19
      • 2016-07-04
      • 2015-10-15
      • 2014-04-30
      • 1970-01-01
      相关资源
      最近更新 更多