6

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

我正在尝试的一种方法是创建两个 QGraphicsScene。一个具有实际对象,但未附加到 QGraphicsView。另一个 QGraphicsScene 连接到 QGraphicsView,但它只有一些平铺的 QPixmap,其大小可以覆盖屏幕。该计划是使用空闲 CPU 周期来更新任何需要它的图块像素图。这似乎会给我对渲染的必要控制(所以我不必在重新渲染整个可见场景时阻塞)。想法?有没有人实施过这个?

4

1 回答 1

3

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

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

40000 Chips还展示了管理大量数据的一些事情。

于 2010-02-10T19:21:20.410 回答