4

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

我想做的是一组可以移动的项目(所有项目都一起移动),但没有一个不能单独移动。但我也希望能够选择该组内的项目,然后对它们做一些事情,比如重新排序、删除、更改它们的颜色等。

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

组 A 包含组 B。组 B 包含 3 行。如果我在 A 组上双击,那么我就可以选择 B 组。如果我再次在 B 上双击,那么我可以选择 B 组内的行。按 Esc 与双击相反。问题是,我不知道该怎么做,因为所有选择都路由给父母,而不是回到它的所有孩子。

4

1 回答 1

2

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

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

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

希望这可以帮助。

于 2010-10-29T15:25:53.430 回答