开发者

pygtk: determine key is a modifier

I've got key-press-event handler and i need to determine which kind of key was pressed: modifier or not?

It's not in event.state, because this field works only when modifier was pressed with something else, but i need this for single key (i.e. 开发者_高级运维simply pressing control or alt, ...).


If your version of GTK+/PyGTK is recent enough, key events have a is_modifier attribute. It's not documented in the PyGTK reference, but it's in the GDK API documentation and is exposed through PyGTK. It was added in GDK 2.10.


You'll find what you're looking for in event.keyval. For example, the following code works for me:

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!"
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜