2009-07-11 7 views
5

J'ai une fenêtre très simple où j'ai 2 boutons - un pour annuler, un pour appliquer. Comment définir le bouton pour appliquer par défaut? (Quand j'appuyez sur Entrée, le bouton « Appliquer » est pressé)Comment définir le bouton par défaut dans PyGTK?

Cependant, je veux mettre l'accent sur le premier widget d'entrée (je ne peux pas utiliser grab_focus() sur le bouton)

Toutes les suggestions?

Edit: Après wuub « s répondre à cela fonctionne visuellement bien. Cependant, quand j'appuie sur le bouton dans un widget différent, il ne lance pas le rappel du bouton par défaut.

code Exemple:

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: Chaque entrée qui peut activer un widget par défaut doit être exécuté

widget.set_activates_default(True) 

Répondre

Questions connexes