QGraphicsScene获取当前选中的对象
时间: 2025-02-22 14:31:12 浏览: 49
在QGraphicsScene中,你可以通过事件系统或者直接查询来获取当前选中的对象。下面是一些常用的方式:
1. **通过鼠标点击事件**: 当用户点击图形区域时,QGraphicsScene会触发`QGraphicsScene::mousePressEvent()`事件。在这个事件处理器中,你可以检查`sender()`,它通常是一个`QGraphicsItem`,即当前选中的对象。示例代码如下:
```cpp
void sceneMousePressEvent(QGraphicsSceneMouseEvent *event) {
QGraphicsItem *selectedItem = event->item();
if (selectedItem)
qDebug() << "Selected item: " << selectedItem->objectName();
}
```
2. **使用`selectedItems()`函数**: 如果你想批量获取所有选中的对象,可以直接调用`QGraphicsScene::selectedItems()`方法,这将返回一个包含所有选中对象的QList<QGraphicsItem>`列表。
```cpp
QList<QGraphicsItem*> selectedItems = scene.selectedItems();
foreach (QGraphicsItem *item, selectedItems) {
qDebug() << "Selected item: " << item->objectName();
}
```
请注意,`QGraphicsScene`本身并不直接跟踪选择状态,而是依赖于其子项(`QGraphicsView`, `QGraphicsItem`s)的状态管理。
阅读全文
相关推荐









