voglio gestire Ctrl
+ Tab
e Ctrl
+ Shift
+ Tab
al fine di passare da una scheda nella mia domanda ("avanti" e "indietro", rispettivamente, i due eventi chiave). Tuttavia, questo non sembra funzionare come previsto.Gestire eventi chiave Ctrl + Tab e Ctrl + Shift + Tab
Questo è il mio codice corrente (esempio minimo):
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')
}
}
}
}
ho eseguito questo pezzo di codice con qmlviewer
(versione Qt 4.8.2)
uscita quando si preme Ctrl
+ Tab
:
forward
forward
Uscita quando si preme Ctrl
+ Shift
+ Tab
:
nessuno
Così vedo due errori: L'ex sequenza di tasti viene gestito due volte mentre l'altro non a tutti.
- EDIT: La ragione per cui l'altro non viene gestita a tutto è risolto, vedere i commenti.
Perché questo succede e come posso risolvere questo?
Nota: utilizzo già Qt Components per Desktop nella mia applicazione, quindi è OK se si conosce una soluzione che richiede questo modulo.
Ok, suppongo che il problema sia che Qt mappa 'Shift' + 'Tab' su' Qt :: Key_Backtab' invece di 'Qt :: Key_Tab'. Questo risolve il secondo problema, ma non il problema che gli eventi dei tasti sono ricevuti * due volte *. – leemes