2010-01-27 1 views
6

키 - 누르기 이벤트 핸들러가 있는데 어떤 키가 눌 렸는지 확인해야합니다 : 수정 자인가요?pygtk : 키가 수정 자임을 결정합니다.

modifier가 다른 것으로 눌려 졌을 때만 작동하기 때문에 event.state에 없지만 단일 키 (즉, 단순히 control 또는 alt 키를 눌러야 함)에 필요합니다.

답변

4

, 키 이벤트가 is_modifier 속성을 가지고있다. PyGTK 참조 문서에는 설명되어 있지 않지만 GDK API 문서에 있으며 PyGTK를 통해 공개됩니다. GDK 2.10에 추가되었습니다.

2

원하는 것을 event.keyval에서 찾을 수 있습니다. 예를 들어, 다음 코드는 나를 위해 작동 : GTK +/PyGTK 버전이 충분히 최근의 경우

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

난 당신이 보여준 것 같은를 얻었으나, 한 훨씬 더 큰 : 수정 = ( gtk.keysyms.Control_L, ..... gtk.keysyms.Hyper_L, gtk.keysyms.Hyper_R , gtk.keysyms.Meta_L, gtk.keysyms.Meta_R, 는) .... 것은 수정에 event.keyval 경우 :하지만 난 생각 .... 몇 가지 다른 방법이있을 수 있습니다 – Daniel