2009-07-11 2 views
5

나는 2 개의 버튼이있는 매우 간단한 창을 가지고 있습니다. 하나는 취소를위한 것이고 하나는 적용을위한 것입니다. 적용 버튼을 기본으로 설정하는 방법은 무엇입니까?PyGTK에서 기본 버튼을 설정하는 방법은 무엇입니까?

그러나, 내가 처음 입력 위젯에 포커스를 설정하려면 (I Enter 키를 누르면, "적용"버튼을 누를 때)

어떤 제안 (I 버튼에 grab_focus()를 사용할 수 없습니다)?

편집 : wuub후 '는의 그것을 시각적으로 잘 작동 대답합니다. 그러나 다른 위젯에서 버튼을 누르면 기본 버튼의 콜백이 실행되지 않습니다.

예제 코드 :

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) 

답변