Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Polish
  4. QGraphicsView i pomiar odległości
Forum Update on Monday, May 27th 2025

QGraphicsView i pomiar odległości

Scheduled Pinned Locked Moved Polish
2 Posts 2 Posters 1.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    sim-ns
    wrote on last edited by
    #1

    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?

    1 Reply Last reply
    0
    • E Offline
      E Offline
      egon81
      wrote on last edited by
      #2

      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.

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved