Herausfinden, ob Mauszeiger über QGraphicsView oder QGraphicsScene ist

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Patrick1990
User
Beiträge: 116
Registriert: Freitag 3. Juni 2016, 05:45

Hallo,

ich habe eine GUI mit zwei QGraphicsView-Fenstern. Dort habe ich eine Zoom-Funktion mit Hilfe des Mausrades implementiert. Nun möchte ich aber ledigliech zoomen können, wenn sich der Mauszeiger über dem Fenster befindet.
Habe leider bisher noch keine Möglichkeit gefunden, wie ich das abfragen kann.
Folgende Code-Zeile lässt jedoch die Gestalt des Maus-Cursors ändern, wenn der Cursor sich im Fenster befindet:

Code: Alles auswählen

self.graphicsView.setDragMode(Widgets.QGraphicsView.ScrollHandDrag)
Eventuell wisst ihr ja, wie ich das realisieren kann.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du solltest mouse enter & leave events bekommen können durch einen Event Filter. Der legt dann fest, ob’s gerade gehen soll.
Patrick1990
User
Beiträge: 116
Registriert: Freitag 3. Juni 2016, 05:45

Klappt für ein Fenster super, wie unterschiede ich nun die zwei Fenster innerhalb des Filters?
Habe das so gedacht:

Code: Alles auswählen

def eventFilter(self, recieved_object, event):
	if recieved_object.objectName() == "Scene1":
		...
usw., jedoch bekomme ich so nicht die Grafikfenster unterschieden.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dafuer brauchst du ein Filter pro Fenster denke ich mal. Das kann ja eine Implementierung sein, der du das gewuenschte Objekt einfach mitgibst.
Patrick1990
User
Beiträge: 116
Registriert: Freitag 3. Juni 2016, 05:45

Habs gelöst, vielen Dank.
Antworten