Frage

Ich arbeite auf einer Qt-Anwendung in einem eingebetteten System, und ich habe nur eine entfernte, auf dem der Hauptschlüssel Key_space ist.

Also, ich möchte eine QComboBox haben, auf dem Sie ein Element auswählen können, wenn Sie die Taste Key_space drücken.

Wie es zu tun? Vielleicht sollte ich von QComboBox erben und neu zu definieren keyPressEvent?

War es hilfreich?

Lösung

Wenn Qt nicht schon damit umgehen (und ich würde denken, es tut, kann aber verwechselt werden), dann müssen Sie ein wenig mehr tun, als nur das Tastendruckereignis in der Combo-Box behandeln. Wenn Sie ein Element für ein Kombinationsfeld auswählen, hat sich ein weiteres Fenster mit der Liste der Elemente in gezeigt worden. Sie müßten das Tastendruckereignis für das Fenster zu handhaben, irgendwie.

Um das zu tun, würde ich vorschlagen, vererben von QComboBox , und installieren Sie eine Ereignisfilter auf die Pop-up, dass angezeigt wird (Blick auf die showPopup() , hidePopup() und view() Funktionen). Machen Sie einen Steckplatz, dass eine Verbindung mit dem highlighted Signal und zu verfolgen, welche Index markiert ist. Dann, wenn das Popup-Fenster einen Raum Schlüsselereignis wird, blenden Sie die Popup und stellen Sie den aktuellen Index auf den letzten markierten Index.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top