2010-08-18 3 views
1

Lorsque j'essaie de faire défiler jusqu'à la fin de mon TreeView, qui se trouve dans une ScrolledWindow, il ne défile pas où il devrait mais une ou deux lignes avant.Impossible de faire défiler jusqu'à la fin de TreeView PyGTK/GTK

J'ai essayé plusieurs méthodes et ils fournissent tous le même comportement:

self.wTree.get_widget("tree_last_log").scroll_to_cell((self.number_results-1,)) 
# or 
self.wTree.get_widget("tree_last_log").set_cursor((self.number_results-1,)) 
# or 
adj = self.wTree.get_widget("scrolledwindow1").get_vadjustment() 
adj.set_value(adj.get_property('upper')) 
self.wTree.get_widget("scrolledwindow1").set_vadjustment(adj) 
# or 
self.wTree.get_widget("scrolledwindow1").emit('scroll-child', gtk.SCROLL_END, False) 

Où est le problème?

+1

Pouvez-vous nous indiquer votre code? – new123456

Répondre

1

L'API C docs peuvent être utiles: http://library.gnome.org/devel/gtk/stable/GtkTreeView.html#gtk-tree-view-scroll-to-cell

Vous pouvez voir qu'il ya des arguments qui gâcher les choses, selon la façon dont les valeurs par défaut pygtk eux. Vous pourriez essayer de spécifier explicitement tous les arguments. Une astuce pour TreeView et TextView est qu'ils agissent de manière asynchrone, de sorte que le "supérieur" de l'ajustement peut bien être nul si les hauteurs de ligne n'ont pas encore été calculées.

Si vous jouez avec le réglage, il n'est pas nécessaire de le remettre en place, mais il devrait être inoffensif. Le signal 'scroll-child' n'est pas ce que vous voulez, c'est un signal de liaison utilisé pour lier les touches.

Questions connexes