当我尝试向下滚动到我的TreeView的末尾时,它在ScrolledWindow中,它不会滚动到它应该的位置,而是之前的一行或两行。
我尝试了几种方法,它们都提供相同的行为:
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)
问题出在哪里?
答案 0 :(得分:1)
C API文档可能会有所帮助: http://library.gnome.org/devel/gtk/stable/GtkTreeView.html#gtk-tree-view-scroll-to-cell
你可以看到那里的参数会搞砸,取决于pygtk如何默认它们。您可以尝试明确指定所有参数。
TreeView和TextView的一个技巧是它们进行异步布局,因此如果尚未计算行高,调整的“上限”可能只为零。
如果搞乱调整,就没有必要把它调回来,虽然它应该是无害的。
'scroll-child'信号不是您想要的,这是用于绑定密钥的键绑定信号。