因此,如果我正确地理解了这一点,QGraphicsItem是(抽象的)图形项,它属于一个QGraphicsScene (基本上是场景管理器)。
QGraphicsView是该场景中特定的“视图”,多个视图可以查看同一场景。
如果我要在同一个场景中看到3个视图,其中一个视图是1-5/10项,另一个视图是5-10/10和第三视图,那么我需要有一个场景和三个视图,并使用某种过滤器来绘制哪些项目。这有可能吗?
如何筛选在特定的QGraphicsItems中显示的哪个QGraphicsView?
发布于 2015-08-10 20:12:05
这是不可能直接做,但相当容易使用视图场景(类似于视图模型)。
项目可见性是场景中不可或缺的一部分,而不是视图。这是有意义的:一旦你开始让场景改变项目属性,就永远没有一个理智的地方可以停下来。接下来,您想要移动项目,等等。因此,这在当前的设计中是不受支持的。
您可以拥有一个包含所有项目的原型场景,然后是具有您希望看到的项目副本的视图场景(视图模型)。这些项目很小,而且复制成本很低,所以即使在一个场景中有上千个项目,以这种方式实现它的成本也是很小的。只需制作一个工厂,复制您感兴趣的所有项目类型,并在原型场景中运行它们,忽略您希望不显示的项目。
https://stackoverflow.com/questions/31928064
复制相似问题