2013-07-30 22 views
1

我有一个程序显示一个GTK Treeview 5-6列和大量的行,因此侧面有一个滚动条。如何保存gtk treeview(排序顺序和位置)?

我想确保如果您退出程序并重新启动它,位于关闭前最后一个状态的位置和排序顺序将再次加载。

所以:

  • 如何存放在树视图中选择的项目位置?
  • 如何存储排序顺序?
  • 当我们再次显示树形视图时,如何将它们返回,以便它能够像关闭程序时那样显示列表?

我已经看到了关于如何存储所选项目位置的一些答案,但没有看到如何以相同的方式再次显示它。

如果您有关于如何做到这一点的任何提示,我将不胜感激。

回答

2

恐怕我用C而不是Python来回答,因为这就是我所熟悉的。您应该能够轻松地翻译函数名称。您可以使用gtk_tree_view_get_cursorgtk_tree_view_set_cursor获取和检索选定的行如果您存储路径,则在重新加载数据时应该保持不变。您可以使用gtk_tree_view_get_columnsg_list_find来查找选择了哪一列。设置光标将滚动窗口,使其可见。这将使视图大致恢复到保存时的状态。如果你想更精确尝试寻找gtk_scrollable_get_vadjustmentgtk_scrollable_get_hadjustment要存储,您可以使用gtk_tree_sortable_get_sort_column_idgtk_tree_sortable_set_sort_column_id

设置它,我希望让你开始,这是值得花一些时间与tree view documentation熟悉自己的排序顺序。起初我可能有点不知所措,但从长远来看,这是值得的。