我正在爲Gedit插件編寫一些代碼。我使用Python和接口(顯然)是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
我可以清楚地看到我收到了正確的事件,但我發送事件,但TreeView的忽略。有任何想法嗎?
在此先感謝的人。
顯然調用 self.browser.grab_focus() 發送該事件有助於問題之前,但我還是想保持專注輸入框。仍在努力。 – dguaraglia 2010-03-30 00:11:38
在這種情況下,您是否可以在以後再次對條目執行「grab_focus」操作? – 2010-03-31 21:01:28
@Johannes嗯......也許。我沒有嘗試,因爲它看起來不正確。 – dguaraglia 2010-04-01 12:58:31