Treeview 在选择或编辑项目时跳转到顶部

Treeview jumps to top on selecting or editing item

在我的 GTK3 window 中,我有一个包含很多项目的 Treeview,所以我让它可以滚动。我为此使用了 Scrolledwindow:

self.codes = Gtk.Treeview()
codeswindow = Gtk.ScrolledWindow()
codeswindow.add_with_viewport(self.codes)
codeswindow.show()

当运行 应用程序选择一个项目("selection_changed" 事件)时,Treeview 将跳到顶部,因此所选项目将看不到。双击一个项目进行编辑时也会发生同样的情况。选择一个项目后,我必须向下滚动到所选项目。

如何防止这种情况发生?

可能相关:当使用 Arrow upArrow down 选择项目时,window 没有滚动。

Treeview can scroll natively and quote from documentation 中的建议:

If a child has native scrolling, use gtk_container_add() instead of this function

顺便说一句:

gtk_scrolled_window_add_with_viewport has been deprecated since version 3.8 and should not be used in newly-written code.

add_with_viewport替换为add解决了问题:

self.codes = Gtk.Treeview()
codeswindow = Gtk.ScrolledWindow()
codeswindow.add(self.codes)