这与我的其他一个问题有关。
如果我通过创建单独的QGraphicsItem(将栅格数据作为其像素图)来平铺大图像,如何跟踪QGraphicsItem在场景中的位置?显然,对于栅格数据,重要的是要保持所有图块“触摸”以形成连续图像,并且它们也必须位于正确的位置,因此图像看起来不会混乱。
每个瓷砖是否必须具有相对于顶部/左侧/底部/右侧的邻居移动它的定位方法?这看起来很笨重。是否有更好的方法让它们一起移动?
换句话说,如果我用滚动条平移场景,或者拾取图像并在场景中拖动/移动它,我希望所有的图块也移动并保持相对于彼此的正确位置。
控制布局的最佳方法是什么,需要渲染哪些图块(即只有可见图块),并且只在需要时填充数据?此外,一旦渲染了一个图块,它的数据是否会被丢弃,并从图像文件中重新填充,比如它是否暂时不在视图中,如果某人平移到该部分,则稍后再回来?
答案 0 :(得分:1)
有(超过)两种方法:
使用QGraphicsItemGroup 处理您的磁贴项目的分组 为了你。它移动,选择,更新 这是小组成员,好像他们一样 一。我从来没有用过它,而是从它开始 doc,它似乎与典型的一起工作 应用
自己在瓷砖上画画 一个自定义项的paint()。这个 让您完全掌控如何操作 放置并绘制瓷砖 项目真正作为一个项目,因为它 嗯,是一个项目。这就是我 做。