我有一个显示 gtk Treeview 的程序,它有 5-6 列和大量行,因此侧面有一个滚动条。
我想确保如果您退出程序并重新启动它,关闭之前处于最后状态的位置和排序顺序会再次加载。
所以:
- 如何在树视图中存储所选项目的位置?
- 如何存储排序顺序?
- 以及如何在再次显示树视图时将它们带回来,以便它像关闭程序时一样显示列表?
我已经看到了一些关于如何存储所选项目位置的答案,但没有看到如何以同样的方式再次显示它。
如果您对如何做到这一点有任何提示,我将不胜感激。
恐怕我是用 C 而不是 Python 回答的,因为那是我所熟悉的。您应该能够很容易地翻译函数名称。您可以使用 and 获取和检索选定的行,gtk_tree_view_get_cursor
如果gtk_tree_view_set_cursor
您存储路径,则在重新加载数据时它应该是相同的。您可以使用gtk_tree_view_get_columns
和g_list_find
来查找选择了哪一列。设置光标将滚动窗口,使其可见。这会将视图恢复到保存时的大致状态。如果您想更精确,请尝试查看gtk_scrollable_get_vadjustment
和gtk_scrollable_get_hadjustment
存储您可以使用的排序顺序gtk_tree_sortable_get_sort_column_id
并将其设置为gtk_tree_sortable_set_sort_column_id
我希望这能让你开始,花一些时间熟悉树视图文档是非常值得的。一开始可能有点让人不知所措,但从长远来看,这是值得的。