【发布时间】:2012-03-28 03:05:00
【问题描述】:
我简单解释一下:首先要在图形场景中按下鼠标并释放鼠标。该点应该是起点。然后另一个我应该按下鼠标并释放这将是终点然后应该画线。我可以在鼠标按下和移动时画一条线。但我想知道 abpve 提到的方式。请有人帮助我。我被困在这了。
【问题讨论】:
标签: qt mousemove qgraphicsscene mousepress
我简单解释一下:首先要在图形场景中按下鼠标并释放鼠标。该点应该是起点。然后另一个我应该按下鼠标并释放这将是终点然后应该画线。我可以在鼠标按下和移动时画一条线。但我想知道 abpve 提到的方式。请有人帮助我。我被困在这了。
【问题讨论】:
标签: qt mousemove qgraphicsscene mousepress
通过处理图形场景的mousePressEvent(),可以捕获鼠标在图形场景上按下时的鼠标位置,并使用QGraphicsSceneMouseEvent的pos()方法保存。
检测到第二次鼠标点击,使用第一个点和第二个点画线。
从你的问题看来你已经知道如何画线,所以我不会在这方面做任何事情。
类似以下,
mousePressEvent( QGraphicsSceneMouseEvent * mouseEvent) {
QPointF pos = mouseEvent->pos();
if( mStartPoint.isNull() ) {
mStartPoint = pos;
} else {
drawLine(mStartPoint, pos);
mStartPoint = QPointF();
}
}
【讨论】: