QT-SvgDisplayWidget-单击了哪个ID?

QT-SvgDisplayWidget-单击了哪个ID?,qt,svg,Qt,Svg,我有一个显示.svg文件的gui。当用户单击时(或者更好的情况是松开时),将调用mouseReleaseEvent 我如何确定单击了哪个SVG图像(ID) 我想在这里使用: void SvgDisplayWidget::mouseReleaseEvent(QMouseEvent *event) {} 谢谢,我不明白这个问题。您知道哪个小部件在其mouseReleaseEvent函数中接收到事件,因为它是执行该代码的同一个小部件。从那里,您可以访问该小部件实现中的所有数据,并由您确定它映射到哪个

我有一个显示.svg文件的gui。当用户单击时(或者更好的情况是松开时),将调用mouseReleaseEvent

我如何确定单击了哪个SVG图像(ID)

我想在这里使用:

void SvgDisplayWidget::mouseReleaseEvent(QMouseEvent *event) {}

谢谢,我不明白这个问题。您知道哪个小部件在其
mouseReleaseEvent
函数中接收到事件,因为它是执行该代码的同一个小部件。从那里,您可以访问该小部件实现中的所有数据,并由您确定它映射到哪个SVG图像。

您可以使用QGraphicsView::itemAt方法在给定位置检索最顶端的QGraphicsSitem

void SvgView::mouseMoveEvent( QMouseEvent * event ){
  QGraphicsItem* it = itemAt(event->pos());
  if(it){

  }
  QGraphicsView::mouseMoveEvent(event);
}

谢谢,但是如何找出它映射到哪个SVG图像呢?在SVG文件中,每个图像都有id。我想找出这个id。我不想从svg文件本身获取x、y、width和height数据,因为如果在运行时通过矩阵变换移动,这个位置在GUI上可能会有所不同。好的,我现在明白你的问题了,似乎没有简单的解决方案,Qt在它所呈现的SVG文件中不提供这种查找。但这无助于在SVG图像中找到ID的ID。。。很抱歉