2009-07-22 12 views
2

Ich versuche ein gtk-Widget zu erstellen, das existiert, wenn die Escape-Taste gedrückt wird. Hier ist mein Code.Wie benutze ich gtk_widget_add_accelerator?

gtk_signal_connect (GTK_OBJECT(window), "delete-event", 
        GTK_SIGNAL_FUNC(gtk_main_quit), NULL); 

/* FIXME */ 
GtkAccelGroup *accels = gtk_accel_group_new(); 
gtk_window_add_accel_group(GTK_WINDOW(window), accels); 
gtk_widget_add_accelerator(window, "delete-event", accels, 
          GDK_Escape, 0, GTK_ACCEL_VISIBLE); 

Aber es funktioniert nicht sagen Widget `GtkWindow‘ hat keine aktivierbaren Signal "delete-event" ohne Argumente

, was falsch ist? oder Gibt es andere Möglichkeiten, dies zu erreichen?

Antwort

4

Das Problem ist, dass delete-event kein Aktion Signal ist.

Gewöhnlich würde es eine Quit-Menüoption geben und Sie könnten die Escape-Taste mit dem activate Signal des Menüs oder einer Quit-Taste verbinden, und Sie könnten das clicked-Signal der Taste verwenden. Dies sind beide Signale vom Aktionstyp.