Domanda

Io lavoro su un'applicazione Qt in un sistema embedded e ho solo un remoto sul quale la chiave principale è Key_space.

Quindi, mi piacerebbe avere un QComboBox su cui è possibile selezionare un elemento quando si preme il pulsante Key_space.

Come fare? Forse dovrei ereditare da QComboBox e ridefinire keyPressEvent?

È stato utile?

Soluzione

Se Qt non è già gestire questo (e mi potrebbe pensare che ha fatto, ma potrebbe essere scambiato), allora avrete bisogno di fare un po 'di più che gestire l'evento premere il tasto nella casella combinata. Quando si seleziona un elemento per una casella combinata, un'altra finestra è stata mostrata con l'elenco degli elementi in essa contenuti. Si avrebbe bisogno di gestire l'evento premere il tasto per quella finestra, in qualche modo.

Per fare questo, vorrei suggerire che eredita da QComboBox , e installare un filtro eventi sul pop-up che viene mostrato (sguardo al showPopup() , hidePopup() , e view() funzioni). Fare una fessura che si collega alla highlighted segnale e tenere traccia di cui indice viene evidenziato. Poi, quando la finestra pop-up diventa un evento chiave spazio, nascondere il popup e impostare l'indice corrente per l'ultimo indice evidenziato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top