Не удается прокрутить до конца TreeView PyGTK / GTK - PullRequest
1 голос
/ 18 августа 2010

Когда я пытаюсь прокрутить вниз до конца моего 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)

Где проблема?

1 Ответ

1 голос
/ 16 октября 2010

Документы C API могут быть полезны: http://library.gnome.org/devel/gtk/stable/GtkTreeView.html#gtk-tree-view-scroll-to-cell

Вы можете видеть, что есть аргументы, которые могут испортить вещи, в зависимости от того, как pygtk по умолчанию их использует.Вы можете попытаться указать явно все аргументы.

Одна хитрость для TreeView и TextView заключается в том, что они выполняют асинхронную компоновку, поэтому «верхний» корректировок может быть просто нулем, если высота строк еще не вычислена.

если возиться с настройкой, нет необходимости сбрасывать ее обратно, хотя она должна быть безвредной.

Сигнал «scroll-child» - это не то, что вам нужно, это сигнал привязки клавиш, используемый дляпривязать ключи к.

...