gpt4 book ai didi

qt - 如何在不选择整个组的情况下选择 QGraphicsItem(该项目所属的组)

转载 作者:行者123 更新时间:2023-12-01 05:43:11 24 4
gpt4 key购买 nike

我想知道是否可以选择属于一组的项目,而不选择整个组。

我试图制作的是一组可以移动的项目(所有项目一起移动),但没有一个不能单独移动。但我还希望能够选择该组内的项目,然后对它们执行某些操作,例如重新排序、删除、更改它们的颜色等。

另一个问题是,可以有一组组。我还希望能够在父组中选择这些组。我在想这可能是个问题,因为我们无法确定用户想要选择哪个组。出于演示目的,假设我们有由以下项目组成的图形场景:

A 组包含 B 组。B 组包含 3 行。
如果我双击 A 组,然后我就可以选择 B 组。如果我再次双击 B,我就可以选择 B 组内的行。按 Esc 与双击相反。问题是,我不知道该怎么做,因为所有选择都被路由到 parent ,而不是返回到它的所有 child 。

最佳答案

您不能使用 QGraphicsItemGroup 来执行此操作,因为在组中选择一项会自动选择该组的所有其他成员。

我将 QGraphicsItem 子类化以创建一个“RootItem”类。这个类将包含两个列表。一个是普通 QGraphicsItems 的列表,它们构成了组本身的视觉元素,以该 RootItem 为父级。另一个列表是其他 RootItems 的父项(例如 B 组)。

您只需要确保仔细控制在任何时候都可以选择哪些项目以及项目之间的交互如何传播。

希望这可以帮助。

关于qt - 如何在不选择整个组的情况下选择 QGraphicsItem(该项目所属的组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4047780/

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