【问题标题】:How to select an QGraphicsItem without selecting whole group (to which this item belongs)如何在不选择整个组的情况下选择 QGraphicsItem(该项目所属)
【发布时间】:2011-05-02 03:48:06
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: qt select qgraphicsitem


    【解决方案1】:

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

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

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-23
      • 2016-04-15
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多