J'écris un peu de code pour un plugin Gedit. J'utilise Python et l'interface (évidemment) est GTK. Donc, le problème que j'ai est assez simple: j'ai une boîte de recherche (un gtk.Entry) et juste en dessous j'ai une boîte de résultats (un gtk.TreeView). Juste après que vous tapez quelque chose dans la boîte de recherche vous êtes présenté un tas de résultats, et je voudrais que l'utilisateur puisse appuyer sur les touches Haut/Bas pour en sélectionner un, Entrée pour le choisir et être fait. Chose est, je ne peux pas sembler trouver un moyen de transférer la touche Up/Down à la TreeView. À l'heure actuelle, j'ai ce morceau de code:Transférer des touches dans GTK
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
Je peux voir clairement que je reçois le bon type d'événement, mais l'événement j'envoie est ignorée par le TreeView. Des idées?
Merci d'avance les gens.
Apparemment appeler self.browser.grab_focus() avant d'envoyer l'événement aide les choses, mais je veux toujours garder l'accent sur la boîte d'entrée. Je travaille toujours là-dessus. – dguaraglia
Dans ce cas, pouvez-vous juste 'grab_focus' sur l'entrée à nouveau après? –
@Johannes hmmm ... peut-être. Je n'ai pas essayé parce que cela ne semblait pas correct. – dguaraglia