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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top