qt 中绘制多个 QGraphicsRectItem后,删除选中的某一个
时间: 2024-03-17 12:45:02 浏览: 111
QT_QGraphicRectItem
你可以通过以下步骤删除选中的 QGraphicsRectItem:
1. 遍历所有 QGraphicsRectItem,找到选中的那个 item。
2. 调用 QGraphicsScene 的 removeItem() 方法将该 item 从场景中移除。
3. 调用 delete 关键字删除该 item 对象,释放内存。
以下是示例代码:
```cpp
QGraphicsRectItem* selectedRectItem = nullptr;
// 遍历所有 QGraphicsRectItem,找到选中的那个 item
foreach (QGraphicsItem* item, scene->items()) {
QGraphicsRectItem* rectItem = qgraphicsitem_cast<QGraphicsRectItem*>(item);
if (rectItem && rectItem->isSelected()) {
selectedRectItem = rectItem;
break;
}
}
if (selectedRectItem) {
// 将该 item 从场景中移除
scene->removeItem(selectedRectItem);
// 删除该 item 对象,释放内存
delete selectedRectItem;
}
```
在实际使用中,你需要根据自己的实际情况进行调整。例如,如果你需要删除多个选中的 item,可以在遍历所有 item 的过程中,将选中的 item 存储在一个 QList<QGraphicsRectItem*> 中,然后依次删除它们。
阅读全文