Ich möchte die beiden wichtigsten Ereignisse zwischen den Tabs in meiner Anwendung („vorwärts“ und „rückwärts“ bzw. wechseln Ctrl
+ Tab
und Ctrl
+ Shift
+ Tab
, um zu handhaben). Dies scheint jedoch nicht wie erwartet zu funktionieren.Griff Schlüsselereignisse Strg + Tab und Strg + Umschalt + Tab
Dies ist mein aktueller Code (minimal Beispiel):
import QtQuick 1.1
Item {
width: 100
height: 100
focus: true
Keys.onPressed: {
if(event.modifiers & Qt.ControlModifier) {
if(event.key === Qt.Key_Tab) {
if(event.modifiers & Qt.ShiftModifier)
console.log('backward')
else
console.log('forward')
}
}
}
}
Ich lief dieses Stück Code mit qmlviewer
(Qt-Version 4.8.2)
Ausgabe beim Drücken Ctrl
+ Tab
:
forward
forward
Ausgabe beim Drücken Ctrl
+ Shift
+ Tab
:
keine
So sehe ich zwei Fehler: Die ehemalige Tastenfolge wird zweimal während der andere überhaupt nicht behandelt.
- EDIT: Der Grund, dass der andere gar nicht gelöst wird behandelt bekommen, siehe Kommentare.
Warum passiert das und wie kann ich das lösen?
Hinweis: Ich verwende Qt Components für Desktop bereits in meiner Anwendung, daher ist es in Ordnung, wenn Sie eine Lösung kennen, die dieses Modul erfordert.
Ok, ich schätze das Problem ist, dass Qt bereits 'Shift' +' Tab' zu 'Qt :: Key_Backtab' anstatt' Qt :: Key_Tab' mappt. Dies löst das zweite Problem, aber nicht das Problem, dass die Schlüsselereignisse * zweimal * empfangen werden. – leemes