Pregunta

Yo trabajo en una aplicación Qt en un sistema embebido y sólo tengo un mando a distancia en la que la clave principal es KEY_SPACE.

Por lo tanto, me gustaría tener un QComboBox donde puede seleccionar un elemento al presionar el botón KEY_SPACE.

¿Cómo hacerlo? Tal vez debería heredar de QComboBox y redefinir keyPressEvent?

¿Fue útil?

Solución

Si Qt no tiene ya manejar esto (y yo creo que lo hizo, pero podría estar equivocado), entonces usted tendrá que hacer un poco más que controlar el evento pulsación de tecla del cuadro combinado. Al momento de seleccionar un elemento de un cuadro combinado, otra ventana se ha demostrado con la lista de artículos en él. Lo que se necesita para controlar el evento pulsación de tecla para esa ventana, de alguna manera.

Para hacer eso, yo sugeriría que hereda de QComboBox , e instalar una filtro de eventos en el pop-up que se muestra (mirada en el showPopup() , hidePopup() , y view() funciones). Hacer una ranura que se conecta a la señal highlighted , y no perder de vista lo que índice se destacó. Entonces, cuando la ventana emergente consigue un evento clave espacio, ocultar la ventana emergente y establecer el índice actual al último índice resaltado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top