Ich muss fangen, wenn ein Benutzer die Maus über die GUI bewegt, aber nicht, wenn er die Maustaste gedrückt hält (was etwas anderes tun würde).
Ich kann keine bequeme Methode finden, dies zu tun, außer, um die Mausposition regelmäßig zu finden und sie auf ihre vorherige Position zu überprüfen ... Was würde saugen.
Das mouseMoveEvent wird nur aufgerufen, wenn die Maus bei gedrückter linker Maustaste bewegt wird, es sei denn, das Widget hat eine 'Mausverfolgung'. Maus-Tracking ist für mich keine Option, da sich die GUI beim Bewegen der Maus und Drücken der linken Maustaste unterschiedlich verhalten muss.
Gibt es dafür eingebaute Methoden? (oder irgendwelche cleveren Ideen?)
zB:
Gibt es eine Möglichkeit zu überprüfen, ob die linke Maustaste gedrückt wird?
Oder ein "mouse hover" -Ereignis, das auf einen QRect (Koordinaten) angewendet werden kann?
Muchas gracias.
Windows 7 (32)
Python 2.7
PyQt4
Es scheint, dass Sie missverstanden haben, was mouseTracking
tut. Es bewirkt nur, dass mouseMoveEvent
ausgelöst wird, sonst nichts. Mit anderen Worten, es ist genau das, was Sie brauchen.
Überprüfen Sie anhand der Schaltflächen () , ob eine Schaltfläche gedrückt wurde:
Für Mausbewegungsereignisse sind dies alle Tasten, die gedrückt werden.
Wie die Leute gesagt haben, scheint der richtige Ansatz darin zu bestehen, setMouseTracking (True) auf dem Widget aufzurufen. Was ich hinzufügen möchte ist, dass Sie, nachdem Sie dies getan haben, zwischen einer Mausbewegung und einer Mausbewegung wie folgt unterscheiden können:
%Vor%Tags und Links python mouseevent pyqt4 pyqt mouseover