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 up
或 Arrow 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)
在我的 GTK3 window 中,我有一个包含很多项目的 Treeview,所以我让它可以滚动。我为此使用了 Scrolledwindow:
self.codes = Gtk.Treeview()
codeswindow = Gtk.ScrolledWindow()
codeswindow.add_with_viewport(self.codes)
codeswindow.show()
当运行 应用程序选择一个项目("selection_changed" 事件)时,Treeview 将跳到顶部,因此所选项目将看不到。双击一个项目进行编辑时也会发生同样的情况。选择一个项目后,我必须向下滚动到所选项目。
如何防止这种情况发生?
可能相关:当使用 Arrow up
或 Arrow down
选择项目时,window 没有滚动。
如
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)