使 QGraphicsItemGroup 的子级不可选择

Posted

技术标签:

【中文标题】使 QGraphicsItemGroup 的子级不可选择【英文标题】:Make children of QGraphicsItemGroup unselectable 【发布时间】:2021-10-22 17:52:18 【问题描述】:

在我的应用程序中,我正在使用图形视图框架,并且正在创建很多 QGraphicsItemGroup。例如,一组代表一个文本框架,其中包含一些用于调整框架大小的正方形,另一组是一组代表画笔描边的点。我正在实现一个类似于您可以在 Adob​​e Photoshop 或 Indesign 中找到的选择工具。我实现如下:

在我的场景中,我使用了 itemAt(pos, transform) 函数,其中 pos 是鼠标的当前位置。 另外,我在所有组中调用了 setFiltersChildEvents(True)

但是,itemAt 返回的项目有时只是组本身的子项。有没有办法让函数 itemAt() 返回项目的组?或者以另一种方式,使这些孩子无法选择。

【问题讨论】:

请提供minimal reproducible example。 【参考方案1】:

如果您正在寻找该项目的组

下面的方法可用于QGraphicsItem,它返回QGraphicsItemGroup。使用此组对象并设置所需的。

PySide6.QtWidgets.QGraphicsItem.group()

https://doc.qt.io/qtforpython/PySide6/QtWidgets/QGraphicsItem.html?highlight=qgraphicsitem#PySide6.QtWidgets.PySide6.QtWidgets.QGraphicsItem.group

【讨论】:

以上是关于使 QGraphicsItemGroup 的子级不可选择的主要内容,如果未能解决你的问题,请参考以下文章

如果父级不调用 wait(),则同一父级的两个子级不使用管道进行通信

Django 模板扩展:子级不覆盖父级

C++ 虚拟方法:我必须在父类中为子级和父级不共享的每个方法创建一个虚拟方法吗?

如何使引导树视图从父级折叠到子级?

当父级可调整大小时,如何防止嵌套 DIV 的内容溢出父级?

XElement 的子级