В PyGTK у меня есть Entry и TreeView.Когда TreeView сфокусирован, ключевые события (Up, Down, PageUp, PageDown) определенным образом перемещают выделение в представлении.Я хочу перехватить эти ключевые события, когда запись находится в фокусе, и перенаправить их в TreeView так, чтобы выделение было перемещено, как если бы TreeView было сфокусировано.
Я могу перехватить события нажатия клавиш в записи и определитьесли это для ключей, которые мне нужны, но у меня есть проблемы с передачей его в TreeView.
# In UI initialization
self.name_entry = gtk.Entry(max=0)
self.name_entry.connect('key-press-event', self.on_key_press)
store = self.create_store() # a simple ListStore is created here
view = gtk.TreeView(store)
rendererText = gtk.CellRendererText()
column = gtk.TreeViewColumn("Name", rendererText, text=0)
column.set_sort_column_id(0)
view.append_column(column)
self.tree_view = view
# ...
def on_key_press(self, widget, event):
if event.keyval == UP:
self.tree_view.do_something() # ???
return True
# etc. for other keyvals
Есть ли способ заставить tree_view обрабатывать событие, как если бы клавиша была нажата, когда она была в фокусе?
(Примечание: программа взломана; я неЗаботьтесь о лучших методах разработки PyGTK здесь.)
Любая помощь приветствуется.