Kann blättern nicht bis zum Ende des TreeView PyGTK / GTK
Frage
Wenn ich versuche, an das Ende meiner TreeView nach unten zu scrollen, die in einem ScrolledWindow ist, ist es nicht bewegen, wo es sein soll, aber eine oder zwei Zeilen vor.
Ich habe versucht, verschiedene Methoden und sie alle bieten das gleiche Verhalten:
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)
Wo ist das Problem?
Lösung
Die C API-Dokumentation kann hilfreich sein: http: //library.gnome .org / devel / gtk / stable / GtkTreeView.html # gtk-Baum-Ansicht-Scroll-to-cell
Sie können sehen, gibt es Argumente gibt das würde durcheinander zu bringen, je nachdem, wie pygtk sie standardmäßig. Sie könnten versuchen, alle explizit die Argumente angeben.
Ein Trick zu TreeView und Textview ist, dass sie asynchron Layout zu tun, so dass die „obere“ auf der Einstellung kann nur gut Null sein, wenn die Zeilenhöhe noch nicht berechnet worden ist.
, wenn mit der Einstellung durcheinander, gibt es keine Notwendigkeit, es zurück zu setzen, obwohl es sollte harmlos sein.
‚scroll-Kind‘ Signal ist nicht das, was Sie wollen, das ist ein Keybinding Signal zu binden Schlüssel verwendet.