QT findItems函数说明
时间: 2023-08-03 12:06:18 浏览: 225
Qt属性表控件实现.zip
好的,那么您问的应该是 QT 的 `QGraphicsScene` 类中的 `findItems()` 函数吧。这个函数的作用是在场景中查找满足指定条件的所有图元,并将其存储在一个 `QList<QGraphicsItem *>` 列表中返回。
`findItems()` 函数有多个重载形式,其中最常用的是以下两个:
```cpp
QList<QGraphicsItem *> QGraphicsScene::findItems(const QPointF &point,
Qt::ItemSelectionMode mode = Qt::IntersectsItemShape,
Qt::SortOrder order = Qt::DescendingOrder) const;
QList<QGraphicsItem *> QGraphicsScene::findItems(const QRectF &rect,
Qt::ItemSelectionMode mode = Qt::IntersectsItemShape,
Qt::SortOrder order = Qt::DescendingOrder) const;
```
第一个重载形式是根据给定的点 `point` 查找与之相交的图元,第二个重载形式是根据给定的矩形区域 `rect` 查找与之相交的图元。其中 `mode` 参数表示查找模式,有 `Qt::IntersectsItemBoundingRect`(相交于边界矩形)、`Qt::ContainsItemShape`(包含于形状内部)和 `Qt::IntersectsItemShape`(相交于形状)三种选项可选;`order` 参数表示返回列表中图元的排序方式,有 `Qt::DescendingOrder`(降序)和 `Qt::AscendingOrder`(升序)两种选项可选。
需要注意的是,`findItems()` 函数返回的是指向图元的指针,而不是图元本身的拷贝。因此,在使用返回的列表中的图元时,应该确保这些图元不会被删除或销毁,否则会导致程序崩溃或未定义的行为。
阅读全文