2

我创建了用于显示本地 .html 页面的简单项目。我在那里使用了Qt5.4 QWebView。但是在切换到 Qt5.6 之后,我注意到 Qt WebKit 已被弃用并且不再受支持。因此,我决定将 Qt WebKit 功能替换为来自 Qt WebEngine 的功能。

替换QWebViewQWebEngineView 我调查该setZoomFactor方法没有效果。是已知问题吗?我该如何处理?

编辑: 最近调查了一件有趣的事情。我使用setHtml方法将本地 .html 文件的内容设置为我的QWebEngineView. 这些文件还包含对图像的引用。所以我将baseUrl参数设置为所需图像的相对路径。在这种情况下,使用setZoomFactor方法没有效果。

但是当我没有将图像的相对路径设置为参数时,图像不存在QWebEngineView但缩放功能有效。任何想法这里有什么问题?

4

3 回答 3

1

这似乎是这个版本的 Qt 中的一个已知错误。您可以在这里自行检查:Qt Bug 51992

基本上,据说:

由于我们用于设置缩放因子的 Chromium API,这看起来像是当前正在发生的已知故障。

并且 :

Chromium 将缩放因子限制为最大 5.0 - 任何高于该数字的调用都将无效。

希望对您有所帮助。

于 2016-04-11T06:58:13.633 回答
1

在 Qt 5.11 中使用 QML zoomFactor 属性或 C++ setZoomFactor (private-API) 为 QML WebEngineView 设置 zoomFactor 没有按预期工作。我从QT Bug 51992的评论中发现它在页面加载后设置时有效。

QML 解决方案:

    WebEngineView {
        // ...
        onLoadingChanged: {
            zoomFactor = 0.75
        }
    }

QWebEngineView解决方案:连接loadFinished信号,每次页面加载后设置zoomFactor:

main.cpp(在 engine.load 调用之后):

QWebEngineView *webView;  // = ...
QObject::connect(webView, &QWebEngineView::loadFinished,
                 [=](bool arg) {
    webView->setZoomFactor(zoomFactor);
});
于 2018-08-16T22:52:28.157 回答
0

setZoomFactor 在 QT 5.15 版本中无法正常工作。

多次调用 setZoomFactor 来解决问题。

WebEngineView {
    function setZoomFactor(real) {
        zoomFactor = real
        zoomFactor = real
        zoomFactor = real
    }
}
于 2020-07-30T02:41:33.217 回答