![Gtk3+ 键盘快捷键无信号匹配](https://linux22.com/image/845914/Gtk3%2B%20%E9%94%AE%E7%9B%98%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%97%A0%E4%BF%A1%E5%8F%B7%E5%8C%B9%E9%85%8D.png)
我正在使用 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()