这是最终起作用的代码。由于它高度依赖于我的开发环境Quickly + Glade + Python + Gtk,因此我将其作为一个独立的答案。布莱斯的回答很有帮助,我与aking1012的交流也是如此。
实际的代码,在文本编辑器中:
# Accelerators
self.my_accelerators = Gtk.AccelGroup()
self.window = self.builder.get_object("discvur_window")
self.window.add_accel_group(self.my_accelerators)
self.entry = self.builder.get_object("entry1")
self.add_accelerator(self.entry, "<Control>b", signal="backspace")
…
def add_accelerator(self, widget, accelerator, signal="activate"):
"""Adds a keyboard shortcut"""
if accelerator is not None:
#if DEBUG:
#print accelerator, widget.get_tooltip_text()
key, mod = Gtk.accelerator_parse(accelerator)
widget.add_accelerator(signal, self.my_accelerators, key, mod, Gtk.AccelFlags.VISIBLE)
print "The accelerator is well added with the signal " + signal
def on_erasing(self, widget):
print "It works."
在Glade中,我在窗口中创建了一个名为“ entry1”的GtkEntry,名为“ discvur_window”。在“信号”选项卡中,我给信号“退格”一个名为“ on_erasing”的处理程序。
现在,按Backspace或Ctrl+ B将使终端打印“ It works”。