我有按键事件处理程序,我需要确定按下了哪种键:修饰符与否?
它不在event.state中,因为此字段仅在使用其他内容按下修饰符时才起作用,但我需要将其用于单个键(即只需按下control或alt,...)。
答案 0 :(得分:4)
如果您的GTK + / PyGTK版本足够新,则关键事件具有is_modifier
属性。它没有记录在PyGTK参考中,但它在GDK API文档中并通过PyGTK公开。它被添加到GDK 2.10中。
答案 1 :(得分:2)
你会在event.keyval中找到你要找的东西。例如,以下代码适用于我:
def key_press_event(widget, event):
keyname = gtk.gdk.keyval_name(event.keyval)
if "Control" in keyname or "Alt" in keyname:
print "You pressed a modifier!"