我有一个存储 QGraphicsLinesItems 和 QGraphicsRectItems 的 QGraphicsScene。
我正在对 itemsAt() 使用 QGraphicsScene 方法,并通过 x 和 y 坐标返回 QGraphicsItem 并使用以下内容:
QPointF getItemPos= this->mapToScene(this->mapFromGlobal(QCursor::pos()));
QGraphicsItem *itm = scene->itemAt(getItemPos.x(),getItemPos.y());
QGraphicsLineItem *lineItm;
QGraphicsRectItem *rectItm;
if((lineItm = dynamic_cast<QGraphicsLineItem*>(itm))){
// do stuff with as_pnedge
qDebug("Line");
}else if((rectItm = dynamic_cast<QGraphicsRectItem*>(itm))){
// do stuff with as_pnitem
qDebug("Rect");
}
else
{
qDebug("Select Item");
}
我遇到的问题是 QGraphicsRectItem 可以正常返回并且可以检测到。但无论我在 QGraphicsLineItems 周围单击什么位置,它都无法检测到并返回该项目。任何帮助将不胜感激。