2009-07-11 7 views
5

Ich habe sehr einfaches Fenster, wo ich 2 Tasten habe - eine für Abbrechen, eine für anwenden. Wie stelle ich die Schaltfläche für die Anwendung als Standard ein? (Wenn ich drücken Sie die Eingabetaste „apply“ Taste gedrückt wird)Wie Standard-Schaltfläche in PyGTK festlegen?

Allerdings möchte ich den Fokus auf das erste Eingangs Widget einstellen (Ich kann nicht verwenden grab_focus() auf den Knopf)

Irgendwelche Vorschläge?

Edit: Nach wuub ‚s beantworten es optisch gut funktioniert. Wenn ich jedoch die Schaltfläche in einem anderen Widget drücke, wird kein Rückruf der Standardschaltfläche ausgeführt.

Beispielcode:

import os, sys, pygtk, gtk 

def run(button, window): 
    dialog = gtk.MessageDialog(window, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, "OK") 
    dialog.run() 
    dialog.destroy() 

window = gtk.Window() 
window.connect("destroy", gtk.main_quit) 

vbox = gtk.VBox(spacing = 10) 
entry = gtk.Entry() 
vbox.pack_start(entry) 

button = gtk.Button(stock = gtk.STOCK_SAVE) 
button.connect("clicked", run, window) 
button.set_flags(gtk.CAN_DEFAULT) 
window.set_default(button) 
vbox.pack_start(button) 

window.add(vbox) 
window.show_all() 
gtk.main() 

EDIT2: Jede Eingabe, die Standard-Widget aktivieren können, müssen

ran
widget.set_activates_default(True) 

Antwort