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_OBJECT

    public:
    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.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.