如何禁用 QML WebView 中的渲染?

How to disable rendering in QML WebView?

我目前正在构建一个使用 QML WebView (import QtWebKit 3.0) 的应用程序。用户需要经常调整 WebView 的大小(我使用的是 QML SplitView),但这会导致 UI 在应用 window 调整大小时极度滞后。有什么办法可以防止这种情况发生吗?

而不是更改 widthheight 属性更改 scale 属性 的 WebView

  • 在调整大小开始时保存 widthheight 的初始值。
  • 调整大小时不要更改 widthheight。而是在调整大小开始时将 scale 设置为 newWidth 除以宽度。
  • 调整大小结束后,将 widthheight 的新值设置为这些属性,并将 scale 设置为 1。

编辑: 由于您无法控制 widthheight 属性,您可以将 WebView 替换为 Rectangle,并将颜色设置为 "transparent"。然后你可以将 WebView 放在 Rectangle 上,观察 Rectanglewidthheight 是如何变化的。

现在有两件事。

如果您不知道调整大小何时开始以及何时结束,请使用 Timer 间隔,例如 100 毫秒。每次 Rectanglewidthheight 更改时,重新启动 Timer 并更新 scale。当 Timer 被触发时,设置真实的 widthheight.

如果 Rectangle 的 widthheight 的比率不是常量,则使用 QML 对象 Scale。有了它,您可以独立更改 xScaleyScale