在我的GTK3窗口中,我有一个包含很多项目的Treeview,所以我让它可以滚动。我正在使用Scrolledwindow:
self.codes = Gtk.Treeview()
codeswindow = Gtk.ScrolledWindow()
codeswindow.add_with_viewport(self.codes)
codeswindow.show()
运行应用程序并选择项目(“selection_changed”事件)时,Treeview将跳转到顶部,因此所选项目将不在视线范围内。双击项目进行编辑时也会出现同样的情况。选择项目后,我必须向下滚动到所选项目。
如何防止这种情况?
可能相关:使用Arrow up
或Arrow down
选择项目时,窗口不会滚动。
答案 0 :(得分:1)
与the comment by @Aran-Fey中的建议一样,Treeview可以原生滚动quote from documentation:
如果孩子有原生滚动,请使用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)