我正在为 Gedit 插件编写一些代码。我正在使用 Python,界面(显然)是 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 忽略。有任何想法吗?
提前感谢人们。