gpt4 book ai didi

c++ - 如何从 QGraphicsView 中的 QGraphicsScene 中过滤可见的 QGraphicsItems?

转载 作者:行者123 更新时间:2023-11-28 06:08:11 24 4
gpt4 key购买 nike

所以,如果我理解正确的话,QGraphicsItem 是属于一个 QGraphicsScene(基本上是场景管理器)的(抽象)图形项。

QGraphicsView 是该场景的特定“ View ”,多个 View 可以查看同一场景。

如果我在同一个场景中有 3 个 View ,其中一个 View 查看 1-5/10 项,其他 5-10/10 和第三个 View 查看所有这些,我将需要一个场景和三个 View 使用某种过滤器绘制哪些项目。这可能吗?

如何过滤显示在特定 QGraphicsView 中的 QGraphicsItem?

最佳答案

直接做是不可能的,但使用 View 场景(类似于 View 模型)会很容易。

项目可见性是场景不可或缺的一部分,而不是 View 。这是有道理的:一旦你开始让场景改变项目属性,就永远没有一个可以停止的理智的地方。接下来你想稍微移动项目等。所以这在当前设计中根本不支持。

您可以拥有一个包含所有项目的原型(prototype)场景,然后是包含您希望可见的项目拷贝的 View 场景( View 模型)。这些项目很小且复制起来很便宜,所以即使场景中有上千个项目,以这种方式实现它的成本也是微乎其微的。只需创建一个工厂来复制您感兴趣的所有项目类型,然后在原型(prototype)场景上运行它们,忽略您不希望显示的项目。

关于c++ - 如何从 QGraphicsView 中的 QGraphicsScene 中过滤可见的 QGraphicsItems?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31928064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com