首页 > 解决方案 > 缓存图像/渐变?

问题描述

我有TableView大约 40 行和 4 列。所有 160 个单元格都有Rectangle一个渐变。我使用启用了快速编译器的 Qt5.13。然而,当我以相对较大的时间间隔(100 毫秒)为所有这 160 个单元格设置动画时,UI 将变得无响应。这意味着渲染渐变需要很长时间。事实上,如果我只渲染 40 个这样的单元格,我可以轻松地以 100 毫秒的间隔进行更新。

矩形代表进度条。它们具有从上到下的渐变。但是,进度条的值(长度)也会改变渐变。这就是为什么对于每个值(长度)点,必须重新创建和重新渲染渐变。

显然,这很慢。我想做的是为每个值(长度)点缓存渐变。它们代表百分比,所以我只需要缓存 101。我很确定这会提高这里的性能。

但是,如何在 QML 中自己缓存渐变(或任何对象)?更一般(或额外)的问题是:如何在多个 QML 文件之间拥有共享的 QML 资源?

标签: qtcachingqml

解决方案


如果您可以访问大内存,您可以尝试加载图像而不是渲染。也许您也可以尝试缩放 SVG。


推荐阅读