有关QGraphicsView中图像平铺的问题

时间:2011-06-11 02:48:55

标签: c++ image qt qt4

这与我的其他一个问题有关。

如果我通过创建单独的QGraphicsItem(将栅格数据作为其像素图)来平铺大图像,如何跟踪QGraphicsItem在场景中的位置?显然,对于栅格数据,重要的是要保持所有图块“触摸”以形成连续图像,并且它们也必须位于正确的位置,因此图像看起来不会混乱。

每个瓷砖是否必须具有相对于顶部/左侧/底部/右侧的邻居移动它的定位方法?这看起来很笨重。是否有更好的方法让它们一起移动?

换句话说,如果我用滚动条平移场景,或者拾取图像并在场景中拖动/移动它,我希望所有的图块也移动并保持相对于彼此的正确位置。

控制布局的最佳方法是什么,需要渲染哪些图块(即只有可见图块),并且只在需要时填充数据?此外,一旦渲染了一个图块,它的数据是否会被丢弃,并从图像文件中重新填充,比如它是否暂时不在视图中,如果某人平移到该部分,则稍后再回来?

1 个答案:

答案 0 :(得分:1)

有(超过)两种方法:

  1. 使用QGraphicsItemGroup 处理您的磁贴项目的分组 为了你。它移动,选择,更新 这是小组成员,好像他们一样 一。我从来没有用过它,而是从它开始 doc,它似乎与典型的一起工作 应用

  2. 自己在瓷砖上画画 一个自定义项的paint()。这个 让您完全掌控如何操作 放置并绘制瓷砖 项目真正作为一个项目,因为它 嗯,是一个项目。这就是我 做。