有没有办法捕获“ key_press_event”中按下的键?

时间:2019-09-11 06:49:28

标签: event-handling pygtk

我正在尝试使用pyGTK构建一个基本界面,在此基础上,我会根据所按下的键调用不同的功能。

我了解使用“连接”方法,可以捕获诸如按键或单击之类的事件,如下所示:

self.btn1.connect("clicked", self.funcRec)
self.btn1.connect("key_press_event", self.funcRec)

执行此操作将在发生按键事件或单击按钮时调用funcRec函数。 但是我无法找到一种方法来捕获实际按下的按键并触发不同的功能。有办法吗?

1 个答案:

答案 0 :(得分:0)

我找到了办法。我使用了一个捕获事件并获取按键事件值的函数。

首先,您“连接”并获得“ key_press_event”并触发回调函数

self.connect("key-press-event", self.on_key_down)

其中“ on_key_down”回调函数定义为

def on_key_down(self, widget, event):
  key = event.keyval
  if key == gtk.keysyms.Right:
    self.onRightPress(self, widget)
  if key == gtk.keysyms.Left:
    self.onRightPress(self, widget)