5

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

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

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

4

1 回答 1

2

如果您在这里阅读:关于 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>

希望有帮助。

于 2016-04-08T08:00:25.010 回答