【问题标题】:QWebView::settings()->setUserStyleSheetUrl() from QtWebKit to QtWebEngine?QWebView::settings()->setUserStyleSheetUrl() 从 QtWebKit 到 QtWebEngine?
【发布时间】:2016-07-28 17:42:18
【问题描述】:

我正在将我的代码从 Qt 5.5 升级到 Qt 5.6,但我没有找到移植以下代码的方法:

QWebEngineView *qwebview = new QWebEngineView(this);
qwebview->settings()->setUserStyleSheetUrl(QUrl("qrc:/about.css"));
qwebview->setHtml(fileContentStr);

使用新的 Qt Web 引擎插入用户 CSS 的最佳方式是什么?

【问题讨论】:

  • qwebenginesetting没有setUserStyleSheetUrl方法...

标签: c++ css qt qtwebkit qtwebengine


【解决方案1】:

如果您在这里阅读:Bug Report on QWebEngine,您会看到:

将 CSS 代码注入 WebEngineView 的唯一机会是 使用 JavaScript。有一个合适的 API 会很好 它可能看起来像我们已经存在的 UserScripts API。

看起来很清楚:你不能再使用 WebSettings 来插入 CSS。相反,你必须使用 HTML/JavaScript 来做到这一点。

我不知道它是否会帮助你,但这里是我所做的摘录。

在我的.cpp

m_pView = new QWebEngineView(this);

QUrl startURL = QUrl("path/to/index.html");

m_pView->setUrl(startURL);

index.html

<html>
    <head>
        <title>TITLE</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <!-- Many JS scripts here -->

        <link href="./css/style.css" rel="stylesheet">

    </head>
    <body ng-app="myApp" >
      <div ui-view class="page"></div>
    </body>
</html>

希望对您有所帮助。

【讨论】:

  • 嗨@Alexis P,我的style.css 在一个qrc 文件中......但是,我会试试你的解决方案。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多