1

当我尝试向下滚动到位于 ScrolledWindow 内的 TreeView 的末尾时,它不会滚动到它应该滚动的位置,而是滚动一两行。

我尝试了几种方法,它们都提供相同的行为:

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)

哪里有问题 ?

4

1 回答 1

1

C API 文档可能会有所帮助: http: //library.gnome.org/devel/gtk/stable/GtkTreeView.html#gtk-tree-view-scroll-to-cell

你可以看到那里有一些参数会搞砸,这取决于 pygtk 如何默认它们。您可以尝试明确指定所有参数。

TreeView 和 TextView 的一个技巧是它们进行异步布局,因此如果尚未计算行高,则调整的“上部”很可能只是零。

如果弄乱了调整,则无需将其设置回去,尽管它应该是无害的。

'scroll-child' 信号不是您想要的,它是用于绑定键的键绑定信号。

于 2010-10-15T20:06:29.193 回答