没有信号匹配的 Gtk3+ 键盘快捷键

hyt*_*omo 4 python application-development gtk3

我正在使用 python 创建我的第一个 Gtk3+ 应用程序,我对缺乏文档感到非常沮丧:(

好吧,我想要做的是配置Delete按钮以从我的TreeView.

这是我的代码:

def make_shortcuts(self):
        self.my_accelerators = Gtk.AccelGroup()
        self.add_accel_group(self.my_accelerators)
        self.add_accelerator(self.treeview, "<Delete>", signal="???")

def add_accelerator(self, widget, accelerator, signal="activate"):
        if accelerator is not None:
            key, mod = Gtk.accelerator_parse(accelerator)
            widget.add_accelerator(signal, self.my_accelerators, key, mod, Gtk.AccelFlags.VISIBLE)
Run Code Online (Sandbox Code Playgroud)

我不明白键盘快捷键必须如何绑定到信号而不是函数。绑定到函数更灵活。

有什么方法可以将键盘快捷键绑定到函数?

tec*_*tux 5

您可以不使用加速,而是将您的按键事件信号连接TreeView到一个函数并检查它是否Delete是按下的键。

def on_treeview_key_press_event(self, widget, event):
    key = Gdk.keyval_name(event.keyval)
    if key == 'Delete':
        self.remove_items()
Run Code Online (Sandbox Code Playgroud)