2009-07-11 14 views
5

Ho una finestra molto semplice in cui ho 2 pulsanti: uno per annullare, uno per applicare. Come impostare il pulsante da applicare come predefinito? (Quando ho premere Invio, "apply" viene premuto il pulsante)Come impostare il pulsante predefinito in PyGTK?

Tuttavia, voglio impostare lo stato attivo al primo widget di ingresso (non posso usare grab_focus() sul pulsante)

Qualche suggerimento?

Edit: Dopo wuub 's risposta che funziona visivamente bene. Tuttavia, quando premo il pulsante in un altro widget, non esegue la richiamata del pulsante predefinito.

codice Esempio:

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: Ogni ingresso che può attivare widget di default deve essere eseguito

widget.set_activates_default(True) 

risposta

Problemi correlati