Gedit プラグインのコードを少し書いています。私は Python を使用しており、インターフェイスは (明らかに) GTK です。
したがって、私が抱えている問題は非常に単純です。検索ボックス (gtk.Entry) があり、そのすぐ下に結果ボックス (gtk.TreeView) があります。検索ボックスに何かを入力した直後に、一連の結果が表示されます。ユーザーが上/下キーを押していずれかを選択し、Enter キーを押して選択し、完了できるようにしたいと考えています。つまり、Up/Down キーを押して 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 によって無視されます。何か案は?
事前に感謝します。