2016-07-02 10 views
1

Ich habe eine QtGuiApplication mit einem einzelnen QQuickItem. und ich möchte Quickitem zu erhalten Mausereignisse, wenn der Mauszeiger außerhalb des Hauptfensters ist. Mauszeiger kann überall im Bildschirm sein. So sollte QQuickItem am Ende Mausereignisse (z. B. Mausbewegung) erhalten, wenn sich der Mauszeiger außerhalb des Anwendungsfensters befindet.QQuickItem empfängt keine Mausereignisse nach der Verwendung von grabMouse(), wenn die Maus außerhalb des Anwendungsfensters ist

Ich habe grabMouse [void QQuickItem :: grabMouse()] verwendet, um dies zu tun. aber ich sehe keine Wirkung wie gewünscht. QuickItem empfängt das Ereignis nur, wenn sich der Mauszeiger im App-Fenster befindet. Sobald der Mauszeiger die QGuiApplication-Grenze verlässt, wird kein Mausereignis mehr angezeigt.

Wie ich lese, sollte grabMouse mein Problem lösen, aber irgendwie tut es nicht. Kann mich jemand darauf hinweisen, dass irgendwelche Extras gemacht werden müssen oder irgendetwas falsch ist.

Hinweis: nach grabmouse mit beginnt Quickitem mousemove- Ereignis bekommen, wenn Maus über Anwendung übergeben wird

Antwort

0

Ich glaube, Sie nicht Mausereignisse, wenn Maus, um es außerhalb des Anwendungsfensters empfangen kann. So funktioniert OS normalerweise.

+0

Ich denke, ich kann, z. B. drücken Sie die linke Maustaste auf Fenster und ziehen Sie es außerhalb der Fenstergrenze und klicken Sie dann auf die rechte Schaltfläche, die Anwendung wird die Ereignisse erhalten, nur sicherstellen, während die linke Maustaste gedrückt bleibt. – SanTosh

+0

@SanTosh, das ist eine Eigenart Ihres Betriebssystems. Es ist kein allgemeines Verhalten. – Velkan

Verwandte Themen