2009-07-11 2 views
5

У меня очень простое окно, где у меня есть 2 кнопки - один для отмены, один для применения. Как установить кнопку для применения по умолчанию? (Когда я нажимаю войти, «применить» кнопка нажата)Как установить кнопку по умолчанию в PyGTK?

Однако, я хочу, чтобы установить фокус на первый входной виджет (я не могу использовать grab_focus() на кнопке)

Есть предложения?

Edit: После wuub «s ответ он работает визуально хорошо. Однако, когда я нажимаю кнопку в разных виджетах, она не выполняет обратный вызов кнопки по умолчанию.

Пример кода:

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: Каждый вход, который может активировать виджет по умолчанию должен быть побежал

widget.set_activates_default(True) 

ответ

Смежные вопросы