捕获QGraphicsScene的selectionChanged()信号

时间:2011-11-15 17:15:59

标签: qt qt4

我正在尝试捕获指示用户已使用橡皮带选择区域的信号。我试过这个:

  QGraphicsScene* scene = new QGraphicsScene();

  connect(scene, SIGNAL(selectionChanged()), this, SLOT(SelectionChanged()));
  this->graphicsView->setScene(scene);
  this->graphicsView->setDragMode(QGraphicsView::RubberBandDrag);

但我的SelectionChanged()槽从未被调用过。任何想法如何做到这一点?

2 个答案:

答案 0 :(得分:1)

为了在选择场景中的某些项目时发出信号selectionChanged。为了获得选择,应该设置标志QGraphicsItem::ItemIsSelectable

您确定这些项目是可选择的吗?

答案 1 :(得分:1)

如@webclectic回答的评论中所述,QGraphicsView橡皮筋用于选择QGraphicsItems

要获取橡皮筋的坐标,您需要继承QGraphicsView,然后按照QRubberBand manual page上的说明操作,在鼠标按下并释放时存储坐标,然后使用QRect发出信号要点。