如何在Qt中实现类似谷歌地图的平铺滚动?

Sco*_*ord 6 c++ qt qgraphicsview

我正在使用Qt/C++并尝试绘制一个大而复杂的QGraphicsScene.一旦我添加了很多对象,平移和缩放变得令人不快.(当然,这并不奇怪).我玩过设备坐标缓存(帮助平移到一个点)和最小的视口更新等等,但最终只有太多的对象.我想做的是以某种方式控制UI异步绘制项目.换句话说,就像谷歌地图一样,我想平移和缩放,让绘图尽可能快地赶上,但是在项目完成绘图之前能够再次平移.

我正在尝试的一种方法是创建两个QGraphicsScenes.一个有实际的对象,但没有附加到QGraphicsView.另一个QGraphicsScene连接到QGraphicsView,但它只有一些平铺的QPixmaps,其大小可以覆盖屏幕.计划是使用备用CPU周期来更新任何需要它的tile pixmap.这似乎会给我对渲染的必要控制(所以我不必在重新渲染整个可见场景时阻塞).思考?有没有人实现过这个?

Ada*_*m W 3

看看这里:在线程中生成内容。

听起来这与您正在尝试做的事情类似。平铺机制是加载大量数据的非常常见的方法。除了发布的链接之外,我还没有看到使用QGraphicsView.

40000 Chips还展示了一些有关管理大量数据的内容。