Я хочу знать о том, как нарисовать линию между двумя узлами. , - PullRequest
0 голосов
/ 28 марта 2012

я просто объясняю: сначала нужно нажать мышью в графической сцене и отпустить мышь.эта точка должна быть отправной точкой.затем еще одно место, я должен нажать кнопку мыши и отпустить, что будет конечной точкой, тогда линия должна быть проведена.Я могу нарисовать линию при нажатии и движении мыши.но я хочу знать, что выше упомянутый способ.пожалуйста, кто-нибудь, помогите мне.я застрял в этом.

1 Ответ

1 голос
/ 28 марта 2012

Вы можете захватить местоположение мыши, когда мышь нажата на графической сцене, обработав mousePressEvent () графической сцены и используя метод pos () QGraphicsSceneMouseEvent и сохранив его.

Буква, когда вы обнаруживаете второй щелчок мыши, используйте первую точку и вторую точку, чтобы нарисовать линию.

Судя по вашему вопросу, вы уже знаете, как рисовать линию, поэтому я не буду ничего делать в этом отношении.

Что-то вроде следующего,

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