我创建了用于显示本地.html页面的简单项目。
我在那里使用Qt5.4和QWebView
。但在切换到Qt5.6之后,我注意到了
Qt WebKit已被弃用,不再受支持。
因此,我决定用一个替换Qt WebKit功能
Qt WebEngine。
用QWebView
替换QWebEngineView
后
我调查setZoomFactor
方法没有效果。
它是否已知问题?我怎么处理这个?
修改
最近调查了一件有趣的事情。我使用setHtml
方法将本地.html文件的内容设置为QWebEngineView
。这些文件还包含对图像的引用。所以我将 baseUrl 参数设置为所需图像的相对路径。在这种情况下,使用setZoomFactor
方法无效。
但是当我没有将图像的相对路径设置为参数时,QWebEngineView
上不存在图像,但缩放功能有效。有什么想法吗?
答案 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
}
}