《QT从基础到进阶·二十二》QGraphicsView显示大量图形项item导致界面卡顿的解决办法

简介: 《QT从基础到进阶·二十二》QGraphicsView显示大量图形项item导致界面卡顿的解决办法

有时候因业务需要,paint函数在界面上绘制了成百上千个图形项Items,导致操作界面的时候有明显的卡顿感,下文会提供一种比较好的解决办法,先来了解下QGraphicsItem的缓存方式。

(1)setCacheMode(QGraphicsItem::NoCache);  //默认方式,无缓存,实时进入paint刷新重绘
(2)setCacheMode(QGraphicsItem::CacheBackground); //只缓存背景(背景色或背景图片),前景仍然需要重新计算。
(3)setCacheMode(QGraphicsItem::DeviceCoordinateCache); //将整个项缓存在设备坐标系中,并且只有在位置、大小或外观发生变化时才需要重新计算。这是最常用和最有效的缓存模式(项目较少使用旋转、缩放、剪切)
(4)setCacheMode(QGraphicsItem::ItemCoordinateCache );  //项目较多使用旋转,缩放,剪切等功能,但图形呈现质量较差。

在Item调用方式3或者直接在item构造中设置方式3能有效避免界面卡顿问题,如果图形项涉及大量的旋转,缩放,剪切,则方式3效果会和方式1差不多,基本没啥效果,界面依旧卡顿,这时就应该用方式4。

请注意,在某些情况下使用缓存可能会导致问题。例如,如果您的项的位置或大小经常更改,则需要清除该项的缓存以确保正确性。可以通过调用invalidate()函数来清除该项的缓存:

item->setPos(0, 0); //修改位置
item->invalidate(); //清除缓存

总结:

如果你的 QGraphicsItem::paint 操作过于复杂,并且大部分是静态的,那么尝试启用缓存.如果您没有对项目或 ItemCoordinateCache 应用转换(如旋转),请使用 DeviceCoordinateCache.避免经常调用 QGraphicsItem::update() ,否则它会比没有缓存更慢。如果您需要更改项目中的某些内容,两个选项是:在子项中绘制它,或使用 QGraphicsView::drawForeground()前景层。

相关文章
|
1月前
|
编解码 并行计算 Java
QT界面中实现视频帧显示的多种方法及应用(二)
QT界面中实现视频帧显示的多种方法及应用
91 0
|
1月前
|
数据可视化 API vr&ar
探索Qt 3D之旅:从基础到实战,打造引人入胜的三维界面与应用
探索Qt 3D之旅:从基础到实战,打造引人入胜的三维界面与应用
124 2
|
1月前
|
存储
QT图形视图框架绘制曲线图和Smith图
QT图形视图框架绘制曲线图和Smith图
18 0
|
1月前
|
存储 测试技术 UED
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
67 1
|
1月前
|
数据可视化 图形学 开发者
【Qt 底层机制之图形渲染引擎】深入理解 Qt 的 渲染机制:从基础渲染到高级图形
【Qt 底层机制之图形渲染引擎】深入理解 Qt 的 渲染机制:从基础渲染到高级图形
160 4
|
3月前
|
编译器
QT creator开发环境下 界面更改后运行程序不能实时更新或者在源文件添加该控件后无法编译的问题
在使用QT Creator开发界面的过程中,偶尔会出现添加控件后,运行程序后,界面控件无法更新的情况,或者在源文件使用该控件却出现无法编译的情况,使用QT Creator 4.8.2也会出现这个情况,也不知道这种情况会不会在以后有所改善。
67 0
|
12天前
|
数据可视化 开发工具 C++
Qt Creator 界面
Qt Creator 界面
|
12天前
|
Windows
解决windows下Qt Creator显示界面过大的问题
解决windows下Qt Creator显示界面过大的问题
|
1月前
|
机器学习/深度学习 人工智能 语音技术
QT界面中实现视频帧显示的多种方法及应用(三)
QT界面中实现视频帧显示的多种方法及应用
73 0
|
1月前
|
存储 编解码 监控
QT界面中实现视频帧显示的多种方法及应用(一)
QT界面中实现视频帧显示的多种方法及应用
130 0

热门文章

最新文章

推荐镜像

更多