У меня есть обработчик ключевых пресс-мероприятий, и я должен определить, какой вид ключа был нажат: модификатор или нет?
Это не находится в event.state, потому что это полевые работы только, когда модификатор был нажат с чем-то еще, но мне нужно это для единственного ключа (т.е. просто нажимающий управление или высокий звук...).
Если ваша версия GTK + / PYGTK достаточно недавно, ключевые события имеют атрибут IS_Modifier
. Он не задокументирован в ссылке PYGTK, но это в документации API GDK и выставлена через PYGTK. Он был добавлен в GDK 2.10.
Вы найдете то, что вы ищете в Events.kyVal. Например, следующий код работает для меня:
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!"