Treeview переходит к началу при выборе или редактировании элемента
В моем окне GTK3 у меня есть Treeview со многими элементами, поэтому я сделал его прокручиваемым. Я использую Scrolledwindow для этого:
self.codes = Gtk.Treeview()
codeswindow = Gtk.ScrolledWindow()
codeswindow.add_with_viewport(self.codes)
codeswindow.show()
При запуске приложения и выборе элемента (событие "selection_changed") древовидная структура переместится наверх, поэтому выбранный элемент будет вне поля зрения. То же самое происходит при двойном щелчке элемента для его редактирования. После выбора элемента мне нужно прокрутить вниз до выбранного элемента.
Как мне это предотвратить?
Может быть связано: при выборе элементов с помощью Arrow up
или же Arrow down
окно не прокручивается.
1 ответ
Как предложено в комментарии @ Aran-Fey Treeview может прокручивать и цитировать из документации:
Если у ребенка есть собственная прокрутка, вместо этой функции используйте gtk_container_add()
и кстати:
gtk_scrolled_window_add_with_viewport устарела с версии 3.8 и не должна использоваться во вновь создаваемом коде.
Замена add_with_viewport
с add
решает проблему:
self.codes = Gtk.Treeview()
codeswindow = Gtk.ScrolledWindow()
codeswindow.add(self.codes)