2009-07-11 35 views
5

Tôi có cửa sổ rất đơn giản, nơi tôi có 2 nút - một để hủy, một để áp dụng. Làm thế nào để thiết lập các nút để áp dụng như một mặc định? (Khi tôi nhấn enter, "áp dụng" nút được nhấn)Làm cách nào để đặt nút mặc định trong PyGTK?

Tuy nhiên, tôi muốn đặt trọng tâm vào widget đầu vào đầu tiên (Tôi không thể sử dụng grab_focus() trên nút)

Bất kỳ lời đề nghị?

Edit: Sau wuub 's trả lời nó hoạt động trực quan tốt. Tuy nhiên, khi tôi nhấn nút trong widget khác nhau, nó không chạy gọi lại của nút mặc định.

Ví dụ mã:

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: Mỗi đầu vào mà có thể kích hoạt mặc định phụ tùng phải được chạy

widget.set_activates_default(True) 

Trả lời

Các vấn đề liên quan