QGraphicsView 删除控件
时间: 2023-09-08 10:16:23 浏览: 155
如果您想从 QGraphicsView 中删除一个控件,可以使用 QGraphicsScene::removeItem() 函数将其从场景中删除,然后使用 delete 关键字删除该控件的指针。
例如,如果您有一个名为 myItem 的 QGraphicsItem,您可以这样从 QGraphicsView 中删除它:
```cpp
// 从场景中删除 item
scene->removeItem(myItem);
// 从内存中删除 item
delete myItem;
```
请注意,如果您正在使用 QGraphicsWidget,您可以直接从 QGraphicsScene 中删除它,因为 QGraphicsWidget 是 QGraphicsItem 的子类。
相关问题
QT 在 QGraphicsView 不能实时刷新
在 Qt 中,QGraphicsView 是一种用于在图形场景中显示图形项的控件。要实现 QGraphicsView 的实时刷新,可以使用以下方法之一:
1. 调用 QGraphicsView 的 update() 方法来强制刷新视图:
```cpp
view->update();
```
2. 如果你的场景中的图形项在运动,请使用 QGraphicsItemAnimation 类来更新它们的位置:
```cpp
QGraphicsItemAnimation *animation = new QGraphicsItemAnimation;
animation->setItem(item);
animation->setTimeLine(timeLine);
animation->setPosAt(0, startPos);
animation->setPosAt(1, endPos);
```
3. 如果你的图形项发生变化,请使用 QGraphicsItem::update() 方法来更新它们的视图:
```cpp
item->update();
```
请注意,QGraphicsView 只在需要时才会刷新,因此在某些情况下,你可能需要在场景中添加或删除图形项以触发刷新。
阅读全文