2009-07-11 68 views
5

我有非常簡單的窗口,我有2個按鈕 - 一個用於取消,一個用於應用。如何將按鈕設置爲默認值? (當我按下回車,「應用」按鈕被按下)如何在PyGTK中設置默認按鈕?

但是,我想將焦點設置到第一輸入小部件(我不能使用按鈕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) 

回答

相關問題