2016-04-28 7 views
0

Ich versuche, 'key-press-event' zu einer Baumansicht hinzuzufügen. Dies ist, um die "Löschen" -Taste zu erkennen, und dann kann ich ein Element aus der Liste entfernen. Um das zu tun, dass ich das folgende Signal hinzugefügt:GTK treeview add 'key-press-event' Signal

g_signal_connect(G_OBJECT(_treeView), "key-press-event", G_CALLBACK(on_list_keypress), 0);

Die Callback-Funktion „on_list_keypress“ aufgerufen wird, wenn ich eine Taste drücken. Nach dem Hinzufügen dieses Signals kann ich jedoch nicht mit den Pfeil-, Home- und End-Tasten durch die Nachrichten navigieren.

Ich habe g_signal_connect durch g_signal_connect_after ersetzt, und jetzt kann ich die Tastatur verwenden, um durch Nachrichten zu navigieren und jeden Tastendruck zu erkennen, wenn ein Element in der Liste ausgewählt wird.

Nachdem ich den Handler für die Löschtaste hinzugefügt habe, lösche ich jetzt das Element aus der Liste, wenn ich die Löschtaste drücke. Allerdings höre ich auch einen Piepton von den Lautsprechern (in meinem Fall PC-Lautsprecher), als ob der Schlüssel nicht gültig ist.

Ich frage mich, ob es eine Möglichkeit gibt, den Piepton zu verhindern, wenn ich die Löschtaste drücke?

Hinweis: Wenn ich g_signal_connect verwende und die Löschtaste drückt, ertönt kein Signalton. Aber das deaktiviert die Standard-Tastaturkürzel für Strukturansichts (wie Pfeil nach oben, unten etc ...)

Danke

Antwort