Ich schreibe ein Accessibility-Tool mit Qt, mit dem der Benutzer die Maus nur mit der Tastatur bedienen kann. Menschen, die nur Mäuse wirklich hassen, können es auch benutzen.Wie kann ich feststellen, was Qt.KeyEvent Shift + 0 ergibt?
Die besonderen Herausforderungen dieser Anwendung sind Strecken, was mit Qt möglich ist, aber zum Glück ist Qt elastisch.
Der Benutzer drückt Caps Lock um das Werkzeug zu aktivieren, woraufhin das Werkzeug Steals konzentrieren. Ein Raster erscheint auf dem Bildschirm und der Benutzer drückt die Tasten, die die Maus jedes Mal kleiner bewegen.
Drücken Sie 0 linke Mausklicks und das Raster verschwindet. Hinzufügen von doppelten Doppelklicks.
Mit Umschalt 0 sollte Mausklick rechts und Drücken von Strg Umschalt 0 sollte Mitte klicken.
Das Problem, das ich bin vor ist, dass, während auf meiner Tastatur, Shift+0
in einem QKeyEvent(QKeyEvent.KeyPress, Qt.NoModifier, Qt.Key_ParenRight)
führen (so ein )
), ist dies nicht überhaupt gewährleistet. Wenn mein Computer im japanischen IME ist, erhalte ich eine QKeyEvent(QKeyEvent.KeyPress, Qt.ShiftModifier, Qt.Key_0)
.
Hilfe, wie kann ich Informationen bekomme ich brauchen, um über die aktuelle Tastaturlayout des Benutzers, so kann ich die richtige Qt.KeyEvent wählen zu hören?
Microsoft Windows haben bereits Tastaturtasten für die Steuerung der Maus definiert. https://support.microsoft.com/en-us/help/14204/windows-7-use-mouse-keys-to-move-mouse-pointer –
Downvoted weil: 1. Qt löst bereits die "caps Lock "Problem durch Senden von verschiedenen Tastencodes, wie ich oben gezeigt habe. 2. Shift ist ein Modifikator nach Qt. Siehe Qt.ShiftModifier. 3. Wenn Sie alle möglichen Layouts und das aktuelle Layout (und seine Informationen) kannten, können Sie "0" finden, die Umschalttaste von 0 finden und mit diesem QKey nach QKeyEvents suchen. 4. MouseKeys hat damit nichts zu tun. –
1. Wie können Sie den Unterschied zwischen Drücken von '(' und Drücken von 'shift + 0' machen, da der spätere Wert als' ('.') Interpretiert wird. 2. Sie erhalten einen 'shift'-Modifizierer auf Japanisch, weil Sie kein anderes Zeichen haben mit 'shift + 0', in anderen Layouts als dem auf Ihrem Computer erhalten Sie keinen Modifikator, weil' shift + 0' in '('. –