QWebEngine的缩放功能不起作用

时间:2016-04-09 15:29:45

标签: qt qtwebengine qt5.6

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

QWebView替换QWebEngineView后 我调查setZoomFactor方法没有效果。 它是否已知问题?我怎么处理这个?

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

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

2 个答案:

答案 0 :(得分:1)

使用QML zoomFactor属性或C ++ setZoomFactor(private-API)在Qt 5.11中为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);
});

答案 1 :(得分:0)

setZoomFactor在QT 5.15版本中无法正常运行。

多次调用setZoomFactor可以解决该问题。

WebEngineView {
    function setZoomFactor(real) {
        zoomFactor = real
        zoomFactor = real
        zoomFactor = real
    }
}