Question

Je travaille sur une application Qt dans un système embarqué et je n'ai une télécommande sur laquelle est Key_space la clé principale.

Alors, je voudrais avoir un QComboBox sur lequel vous pouvez sélectionner un élément en appuyant sur le bouton Key_space.

Comment faire? Peut-être que je devrais hériter de QComboBox et redéfinissent keyPressEvent?

Était-ce utile?

La solution

Si Qt ne gère pas déjà (et je pense qu'il a fait, mais il pourrait être confondu), alors vous aurez besoin de faire un peu plus que juste gérer l'événement de presse clé dans la zone de liste déroulante. Lorsque vous sélectionnez un élément pour une zone de liste déroulante, une autre fenêtre a été démontré que la liste des éléments qu'il contient. Vous devrez gérer l'événement de pression de touche pour cette fenêtre, en quelque sorte.

Pour ce faire, je vous suggère héritant de QComboBox , et installer un sur le pop up qui est montré (regardez le showPopup() , hidePopup() et view() fonctions). Faire une fente qui se connecte au highlighted et garder une trace des index est mis en évidence. Puis, quand la fenêtre devient un événement clé de l'espace, cacher la fenêtre et définir l'index en cours au dernier indice en surbrillance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top