quiero manejar los dos eventos clave Ctrl
+ Tab
y Ctrl
+ Shift
+ Tab
con el fin de cambiar entre pestañas en mi solicitud ("adelante" y "atrás", respectivamente) Sin embargo, esto no parece funcionar como se esperaba.Manejar eventos de teclas Ctrl + Tab y Ctrl + Shift + Tab
Este es mi código actual (mínima ejemplo):
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')
}
}
}
}
me encontré con este pedazo de código con qmlviewer
(versión Qt 4.8.2)
salida al pulsar Ctrl
+ Tab
:
forward
forward
Salida al presionar Ctrl
+ Shift
+ Tab
:
ninguno
Así que ver dos errores: La primera secuencia de teclas se maneja en dos ocasiones, mientras que el otro no en todos.
- EDIT: La razón de que el otro no consigue manipularse en todo se resuelve, ver los comentarios.
¿Por qué sucede esto y cómo puedo solucionar esto?
Nota: Ya uso Qt Components for Desktop en mi aplicación, por lo que está bien si conoce una solución que requiera este módulo.
Ok, supongo que el problema es que Qt ya asigna 'Shift' +' Tab' a 'Qt :: Key_Backtab' en lugar de' Qt :: Key_Tab'. Esto resuelve el segundo problema, pero no el problema de que los eventos clave se reciben * dos veces *. – leemes