pygtk:确定键是一个修饰符

时间:2010-01-27 20:53:03

标签: python user-interface gtk pygtk

我有按键事件处理程序,我需要确定按下了哪种键:修饰符与否?

它不在event.state中,因为此字段仅在使用其他内容按下修饰符时才起作用,但我需要将其用于单个键(即只需按下control或alt,...)。

2 个答案:

答案 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!"