Gtk3+ 键盘快捷键无信号匹配

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)

我不明白为什么键盘快捷键必须绑定到信号而不是函数。绑定到函数更加灵活。

有什么方法可以将键盘快捷键绑定到某个功能吗?

答案1

除了使用加速器之外,您还可以连接按键事件将您的信号TreeView发送给某个函数并检查是否Delete按下了该键。

def on_treeview_key_press_event(self, widget, event):
    key = Gdk.keyval_name(event.keyval)
    if key == 'Delete':
        self.remove_items()

相关内容