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!"
精彩评论