在布局容器中,如何知道是否按下了某个键?

时间:2018-03-14 10:26:16

标签: python gtk

我的问题是:在Python脚本中,我使用以下代码创建一个窗口:

class Layout(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title="Ricerca partite")
        self.connect("key-press-event",self.GetKeypress)
        self.set_default_size(265, 437)
        self.move(700,300)

    # other instructions

如果按下了“+”,“ - ”或“Return”键之一,我必须执行相应的操作,否则不执行任何操作。 如何检查其中一个键是否被按下?应该如何编写“GetKeypress()”函数?

1 个答案:

答案 0 :(得分:1)

您可以尝试此操作(假设您已导入gtkgdk):

def GetKeypress(self,event):
    keyval_name = gtk.gdk.keyval_name(event.keyval)
    if keyval_name == '+' or keyval_name == '-' or keyval_name == 'Return':
        #continue your code here

我认为,既然你想在按下键后执行相应的操作,那么你应该将self.connect("key-press-event",self.GetKeypress)更改为 self.connect("key-release-event",self.GetKeypress)

您可以在documentation

中找到有关此事的更多信息