Maus NICHT automatisch grabben

Alles rund um die Programmierung mit Qt
Antworten
btux
Beiträge: 2
Registriert: 9. Dezember 2009 17:56

Maus NICHT automatisch grabben

Beitrag von btux »

Hallo,

ich versuche auf einem kleinen Gerät bestehend aus Display und Touchpad auf dessen Rückseite ein Qt laufen zu lassen. Das Gerät fungiert als externer Monitor eines beliebigen Computers.

Das Gerät hat aber das Problem, dass sein Touchpad ziemlich willkürlich Klicks und Releases meldet. Soll heißen, alles was mit Klicks und Loslassen zu tun hat, sollte ignoriert werden. Ich arbeite nur mit der Fingerbewegung und einigen Zusatztasten.

Ich habe aber Schwierigkeiten Qt dazu zu bringen, wirklich alle Maus-Klick-Events zu ignorieren und nur MouseMove-Events zu nutzen. Ich habe MousePressEvent, MouseReleaseEvent und co. reimplementiert, die Widgets selbst reagieren nicht mehr auf Mausklicks. Aber es gibt ein Problem: Wenn die Maustaste gedrückt wird und danach die Maus bewegt, wird die Maus von dem drunter liegenden Widgets ge"grabt". Wenn man die Maus dann über andere Widgets bewegt wird, bekommen diese keine Move-Events mehr.

Das ganze ist von Qt so gewollt. Siehe Doku für QMouseEvent:
"Qt automatically grabs the mouse when a mouse button is pressed inside a widget; the widget will continue to receive mouse events until the last mouse button is released."

Aber genau das will ich nicht! Die Maus-Events sollen in jedem Fall die Widgets erhalten, über denen sich die Maus gerade befindet. Kann mir jemand helfen?
btux
Beiträge: 2
Registriert: 9. Dezember 2009 17:56

Beitrag von btux »

Es gibt eine Debugging-Option -nograb, die tut was ich will. Gibt es eine andere Möglichkeit, das selbe zu erreichen?
Antworten