【问题标题】:Zoom feature for QWebEngine does not workQWebEngine 的缩放功能不起作用
【发布时间】:2016-07-30 20:32:57
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你可以使用评估函数进行缩放并在 java 脚本中进行缩放吗?
  • 没有。我只是尝试使用内置的setZoomFactor 方法。是否应该设置一些其他设置以启用缩放可能性?

标签: qt qtwebengine qt5.6


【解决方案1】:

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

多次调用 setZoomFactor 解决问题。

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

【讨论】:

    【解决方案2】:

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

    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);
    });
    

    【讨论】:

      【解决方案3】:

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

      基本上是这样说的:

      这看起来像是一个已知故障,目前正在发生,因为 我们用于设置缩放系数的 Chromium API。

      还有:

      Chromium 将缩放系数限制为最大 5.0 - 任何调用 高于此的数字将无效。

      希望对你有所帮助。

      【讨论】:

      • 我知道Qt Bug 51992 但我使用了足够的缩放系数值,例如 1.25、1.625 等。setZoomFactor 方法根本不起作用。
      • 哦,我以为你在问“这是已知问题吗?”所以我刚刚回答了你的问题...
      • 顺便问一下,您是否阅读过有关此主题的其他错误报告?对于某些应用程序,知道这个方法根本不起作用,并且它的解决方案正在进行中(对于下一版本的Qt);例如,请参阅错误 51851 和 51969。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      • 2012-08-25
      相关资源
      最近更新 更多