Gedit 플러그인 용 코드를 작성 중입니다. 나는 파이썬을 사용하고 있으며, 인터페이스 (분명히)는 GTK이다.GTK에서 전달 키 누르기
그래서 문제는 매우 간단합니다. 검색 상자 (gtk.Entry)가 있으며 바로 아래에 결과 상자 (gtk.TreeView)가 있습니다. 검색 창에 무엇인가를 입력 한 직후에 많은 결과가 나타나며, 사용자가 위/아래 키를 눌러 선택하고, Enter를 눌러 선택하고 완료 할 수 있기를 바랍니다. 문제는, 위로/아래로 키 누르기를 TreeView로 전달하는 방법을 찾지 못하는 것입니다.
def __onSearchKeyPress(self, widget, event):
"""
Forward up and down keys to the tree.
"""
if event.keyval in [gtk.keysyms.Up, gtk.keysyms.Down]:
print "pressed up or down"
e = gtk.gdk.Event(gtk.gdk.KEY_PRESS)
e.keyval = event.keyval
e.window = self.browser.window
e.send_event = True
self.browser.emit("key-press-event", e)
return True
내가 이벤트의 오른쪽 종류를 수신하고있어 명확하게 볼 수 있습니다,하지만 난 보내고있다 이벤트가 트 리뷰에 의해 무시됩니다 : 현재 나는이 코드 조각이있다. 어떤 아이디어?
미리 감사드립니다.
분명히 호출 self.browser.grab_focus() 을하지만, 난 여전히에 초점을 유지하려면 :
예를 들어, 직접 트 리뷰 커서/선택을 조작 입력 상자 아직도 그 일을하고 있습니다. – dguaraglia그럴 경우, 나중에 다시 항목에'grab_focus' 만 할 수 있습니까? –
@Johannes hmmm ... 아마도. 내가 옳은 것처럼 보이지 않았기 때문에 나는 시도하지 않았다. – dguaraglia