我想知道如何在两个节点之间画一条线。 。

时间:2012-03-28 03:05:00

标签: qt mousemove qgraphicsscene mousepress

简单地说明一下:首先要在graphicsscene中按鼠标并释放鼠标。这一点应该是起点。然后另一个我应该按下鼠标并释放它将是终点然后应绘制线。鼠标按下和移动时,我可以绘制一条线。但我想知道abpve提到的方式。请有人帮助我。我陷入了困境。

1 个答案:

答案 0 :(得分:1)

通过处理图形场景的mousePressEvent()并使用QGraphicsSceneMouseEvent的pos()方法并存储鼠标,可以在图形场景上按下鼠标时捕获鼠标的位置。

当您检测到第二次鼠标点击时,请使用第一个点和第二个点来绘制线条。

从你的问题来看,你看起来已经知道如何划线,所以我不会在这方面做任何事情。

如下所示,

mousePressEvent( QGraphicsSceneMouseEvent * mouseEvent) {
    QPointF pos = mouseEvent->pos();
    if( mStartPoint.isNull() ) {
        mStartPoint = pos;
    } else {
        drawLine(mStartPoint, pos);
        mStartPoint = QPointF();
    }
}