Mouse Events in abgeleiteter Klasse
Verfasst: 1. Mai 2011 16:20
Hallo
Ich schreibe ein kleines Qt Programm welches eine Webcam für Bewegungserkennung benutzt.
Ich habe die Hauptklasse:
WebcamMotionDetectorClass besitzt unter anderem ein QGraphicsView*, in welchem die Bilder angezeigt werden.
Dazu habe ich eine Klasse zur Bildakquisition, abgeleitet von QGraphicsView:
welche als Pointer im Konstruktor der Klasse WebcamMotionDetector instanziiert wird:
Wenn ich in WebcamMotionDetector die Methode
neu implementiere, dann kann ich die Mauskoordinaten lesen und ausgeben. Diese sind aber auf das Hauptfenster bezogen und nützen mir nichts, da ich die Koordinaten benutzen möchte, um eine Region of Interest im QGraphicsView (von mir aus auch der QGraphicsScene) zu erstellen, also z.B. ein QGraphicsRectItem.
Wenn ich aber die Methode
oder auch
in der Klasse motionDetectionGraphicsView neu implementiere, wird die Methode scheinbar nicht ausgeführt. (Textausgabe als Test -> passiert nicht...)
Der Weg des Bildes ist folgendermassen:
cv::Mat (von OpenCV) -> QImage -> QPixmap -> QGraphicsScene::addPixmap( pixmap ) -> QGraphicsView::addScene( scene ) -> QGraphicsView::show( )
(Das funktioniert alles! Nur als Info, falls ich besser an einer anderen Stelle auf die Mauskoordinaten zugreifen soll.)
Ich brauche im Endeffekt die Koordinaten des Mauszeigers in Bildkoordinaten.
ui-File erstellt mit Qt Designer
Projekt erstellt mit Qt Plugin in Visual Studio 2008
Ich habe gegoogelt, den Assistant auf den Kopf gestellt aber komme nicht auf die Lösung. Ev. ist die Lösung ziemlich einfach und trivial... Ich habe für den Fall schon ein Facepalm für mich bereitgelegt.
Ich hoffe das reicht als Info, sonst gerne fragen.
Vielen Dank schon mal im Voraus!
Ich schreibe ein kleines Qt Programm welches eine Webcam für Bewegungserkennung benutzt.
Ich habe die Hauptklasse:
Code: Alles auswählen
class WebcamMotionDetector : public QMainWindow, private Ui::WebcamMotionDetectorClassDazu habe ich eine Klasse zur Bildakquisition, abgeleitet von QGraphicsView:
Code: Alles auswählen
class motionDetectionGraphicsView : public QGraphicsViewCode: Alles auswählen
localGraphicsView_ = new motionDetectionGraphicsView( parent );Code: Alles auswählen
mousePressEvent( QMouseEvent* event )Wenn ich aber die Methode
Code: Alles auswählen
mousePressEvent( QMouseEvent* event )Code: Alles auswählen
mousePressEvent( QMouseGraphicsSceneEvent* event )Der Weg des Bildes ist folgendermassen:
cv::Mat (von OpenCV) -> QImage -> QPixmap -> QGraphicsScene::addPixmap( pixmap ) -> QGraphicsView::addScene( scene ) -> QGraphicsView::show( )
(Das funktioniert alles! Nur als Info, falls ich besser an einer anderen Stelle auf die Mauskoordinaten zugreifen soll.)
Ich brauche im Endeffekt die Koordinaten des Mauszeigers in Bildkoordinaten.
ui-File erstellt mit Qt Designer
Projekt erstellt mit Qt Plugin in Visual Studio 2008
Ich habe gegoogelt, den Assistant auf den Kopf gestellt aber komme nicht auf die Lösung. Ev. ist die Lösung ziemlich einfach und trivial... Ich habe für den Fall schon ein Facepalm für mich bereitgelegt.
Ich hoffe das reicht als Info, sonst gerne fragen.
Vielen Dank schon mal im Voraus!