2009-07-11 26 views
5

Tengo una ventana muy simple donde tengo 2 botones, uno para cancelar, uno para aplicar. ¿Cómo configurar el botón para aplicar como uno predeterminado? (Cuando pulse Intro, "aplicar" se pulsa el botón)¿Cómo se establece el botón predeterminado en PyGTK?

Sin embargo, quiero establecer el foco en el primer elemento de entrada (no puedo usar grab_focus() del botón)

¿Alguna sugerencia?

Editar: Después wuub 's contestar funciona visualmente buena. Sin embargo, cuando presiono el botón en un widget diferente, no ejecuta la devolución de llamada del botón predeterminado.

código Ejemplo:

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: Cada entrada que puede activar widget de defecto debe ser corrió

widget.set_activates_default(True) 

Respuesta

Cuestiones relacionadas