QGraphicsView i pomiar odległości
-
Witam!
Czy ktoś z was kiedyś wymyslał takie cuda i może coś podpowiedzieć albo chociaż nakierować na odpowiedni kierunek. Chodzi o to iż w kontolce QGraphicsView wyświetlam dwa obrazy "na sobie" i teraz muszę mieć jakieś narzedzie/opcje/whatever do mierzenia odległości w mm między dwoma punktami QPoint nanoszonymi wcześniej myszką zarówno na jednym jak i drugim obrazie. Kompletnie nie wiem czy da się to zrobić, a już zupełnie jak się mam do tego zabrać. Jakieś pomysły?
-
Możesz to zrobić tak:
1.Tworzysz pochodną klasy QGraphicsView
naprzykład tak:class QMyGraphicsView : public QGraphicsView
{
Q_OBJECTpublic:
QMyGraphicsView(QWidget * parent = 0);
~QMyGraphicsView();private
QPoint P1,P2;
bool capturingtwoPoints=false;
bool FirstPointcaptured=false;protected slots:
virtual void mousePressEvent ( QMouseEvent * e );
}2.tworzysz przycisk Qbutton który włacza i wyłacza tryb capturingtwoPoints
3.implementujesz virtualną metodę klasy QMyGraphicsView która w czasie gdy capturingtwoPoints jest true to nasłuchuje:
a/ klikniecie mysza na najpierw pierwszy punkt tj współrzędne x,y w pikselach i ustawia FirstPointcaptured na true a wsolrzedne do zmienned P1
b/ potem nasłuchuje drugi punkt współrzedne do zmiennej P2 następnie wywołuje metode obliczajaca odległosc
(z twierdzenia pitagorasa odleglosc=pierw kwadrat ( (P2.X-P1.X)^2 + (P2.Y-P1.Y)^2 )
oraz po wykonaniu pracy ustawia zmienną capturingtwoPoints=false; oraz FirstPointcaptured=false;BTW Postaraj się jaśniej, bardziej szczegółowo napisać co chcesz osiągnąć bo nie wiem czy o takie rozwiązanie ci chodziło.