如何在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()
编辑2:每个可以激活默认控件的输入都必须被运行。
widget.set_activates_default(True)
1 个回答
4
这是两个链接,分别指向关于PyGTK的文档。PyGTK是一个用来创建图形用户界面的工具,主要用于Python编程。
第一个链接是关于“gtkdialog”的,它有一个方法叫“set-default-response”。这个方法的作用是设置对话框的默认响应,也就是说,当用户按下回车键时,系统会自动选择这个默认的选项。
第二个链接是关于“gtkwindow”的,它有一个方法叫“set-default”。这个方法用于设置窗口的默认行为,比如在某些情况下,窗口应该如何响应用户的操作。