просто я объясняю: сначала хочу нажать мышь в графику и отпустить мышь. эта точка должна быть начальной. то другой plase i должен нажать мышь и отпустить, которая будет конечной точкой, тогда линия должна быть нарисована. Я могу нарисовать линию при нажатии и перемещении мыши. но я хочу знать, что это так. пожалуйста, помогите мне. я застрял в этом.Я хочу знать, как нарисовать линию между двумя узлами. ,
0
A
ответ
1
Вы можете захватить местоположение мыши, когда мышь нажата на графическую сцену, обработав mousePressEvent() графической сцены и используя метод pos() QGraphicsSceneMouseEvent и сохраните его.
Письмо, в котором вы обнаруживаете второй щелчок мыши, используйте первую точку и вторую точку для рисования линии.
От вас вопрос, что вы уже знаете, как рисовать линию, поэтому я ничего не стану по этому поводу.
Нечто подобное следующее,
mousePressEvent(QGraphicsSceneMouseEvent * mouseEvent) {
QPointF pos = mouseEvent->pos();
if(mStartPoint.isNull()) {
mStartPoint = pos;
} else {
drawLine(mStartPoint, pos);
mStartPoint = QPointF();
}
}
Bro, его немного странно делать. может у дать мне пример. Большая помощь –
Как обнаружить второй щелчок мышью? –
у вас может быть одна переменная-член в вашем классе, скажем, mStartPoint, при щелчке мыши вы проверяете, действителен ли mStartPoint или нет, если нет, то первый щелчок, и вы сохраняете местоположение в mStartPoint. при следующем щелчке мыши вы снова проверяете mStartPoint на этот раз, когда он действителен, теперь вы знаете его второй щелчок, вы используете эту точку мыши для рисования линии и аннулирования mStartPoint. – Kunal