2011-07-06 4 views
1

Dans PyGTK, j'ai une entrée et un TreeView. Lorsqu'une arborescence est mise au point, les événements clés (Haut, Bas, PageUp, PageDown) déplacent la sélection dans la vue d'une certaine manière. Je souhaite intercepter ces événements clés lorsque l'entrée est ciblée et les rediriger vers TreeView afin que la sélection soit déplacée comme si la commande TreeView était mise au point.PYGTK redirige l'événement vers TreeView

Je peux intercepter les événements de presse de touche sur l'entrée et déterminer si c'est pour les clés dont j'ai besoin, mais j'ai du mal à le transmettre à TreeView. Y a-t-il un moyen de faire en sorte que tree_view gère l'événement, comme si la touche était enfoncée alors qu'elle était active?

(Note:. Le programme est un hack, je ne me soucie pas pour les meilleures pratiques de développement PyGTK ici)

Toute aide est appréciée.

Répondre

3

Quelque chose comme cela devrait fonctionner:

def on_key_press(self, widget, event): 
     if gtk.gdk.keyval_name(event.keyval) in ("Up", "Down", "Page_Up", "Page_Down"): 
      self.tree_view.grab_focus() 
      self.tree_view.emit('key_press_event', event) 
      self.name_entry.grab_focus() 
Questions connexes