如何禁用 QML WebView 中的渲染?
How to disable rendering in QML WebView?
我目前正在构建一个使用 QML WebView
(import QtWebKit 3.0
) 的应用程序。用户需要经常调整 WebView
的大小(我使用的是 QML SplitView
),但这会导致 UI 在应用 window 调整大小时极度滞后。有什么办法可以防止这种情况发生吗?
而不是更改 width
和 height
属性更改 scale
属性 的 WebView
。
- 在调整大小开始时保存
width
和 height
的初始值。
- 调整大小时不要更改
width
和 height
。而是在调整大小开始时将 scale
设置为 newWidth 除以宽度。
- 调整大小结束后,将
width
和 height
的新值设置为这些属性,并将 scale
设置为 1。
编辑:
由于您无法控制 width
和 height
属性,您可以将 WebView
替换为 Rectangle
,并将颜色设置为 "transparent"
。然后你可以将 WebView
放在 Rectangle
上,观察 Rectangle
的 width
和 height
是如何变化的。
现在有两件事。
如果您不知道调整大小何时开始以及何时结束,请使用 Timer
间隔,例如 100 毫秒。每次 Rectangle
的 width
和 height
更改时,重新启动 Timer
并更新 scale
。当 Timer
被触发时,设置真实的 width
和 height
.
如果 Rectangle 的 width
和 height
的比率不是常量,则使用 QML 对象 Scale
。有了它,您可以独立更改 xScale
和 yScale
。
我目前正在构建一个使用 QML WebView
(import QtWebKit 3.0
) 的应用程序。用户需要经常调整 WebView
的大小(我使用的是 QML SplitView
),但这会导致 UI 在应用 window 调整大小时极度滞后。有什么办法可以防止这种情况发生吗?
而不是更改 width
和 height
属性更改 scale
属性 的 WebView
。
- 在调整大小开始时保存
width
和height
的初始值。 - 调整大小时不要更改
width
和height
。而是在调整大小开始时将scale
设置为 newWidth 除以宽度。 - 调整大小结束后,将
width
和height
的新值设置为这些属性,并将scale
设置为 1。
编辑:
由于您无法控制 width
和 height
属性,您可以将 WebView
替换为 Rectangle
,并将颜色设置为 "transparent"
。然后你可以将 WebView
放在 Rectangle
上,观察 Rectangle
的 width
和 height
是如何变化的。
现在有两件事。
如果您不知道调整大小何时开始以及何时结束,请使用 Timer
间隔,例如 100 毫秒。每次 Rectangle
的 width
和 height
更改时,重新启动 Timer
并更新 scale
。当 Timer
被触发时,设置真实的 width
和 height
.
如果 Rectangle 的 width
和 height
的比率不是常量,则使用 QML 对象 Scale
。有了它,您可以独立更改 xScale
和 yScale
。