2014-10-29 62 views
-1

如何将GtkTreeSelection设置为特定行,行号为3GtkTreeView将选择设置为特定行

我可以将选择设置为GtkTreeIter,但是如何将iter设置为行号3

我在谷歌搜索没有找到任何有用的东西,所以我没有尝试任何东西,因为我不知道是什么。

我希望你能帮助我,给我关于我的问题的信息!

编辑:

GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); 
GtkTreePath *path = gtk_tree_path_new_from_indices(3, -1); 
gtk_tree_model_get_iter(model, &iter, path); 
gtk_tree_path_free(path); 
gtk_tree_selection_select_path(treeview_selection, path); 

- >不要工作

+0

释放它后使用* path *。 – user4815162342 2014-10-29 20:30:30

回答

1

你并不需要使用此一GtkTreeIter,该GtkTreePath API是不够的。在使用它之前,你会抛弃你的道路,这会产生问题。

这里是如何做到这一点:

GtkTreePath *path = gtk_tree_path_new_from_indices(3, -1); 
gtk_tree_selection_select_path(treeview_selection, path); 
gtk_tree_path_free(path); 

更新:我完全重写了代码下降的GtkTreeIter使用,我原本以为你想使用的ITER,因为那是你想要什么样的解决方案去做。

如果你只是想做一个选择(例如,不需要GtKTreeIter的其他东西),以上是使用只是GtkTreePath最简单的方法。

当然,不要在使用select-call之前破坏路径。

+0

查看我编辑的问题 – 2014-10-29 17:32:11

+0

如果目标是将选择设置为预先知道索引的行,为什么要通过iter?只有在调用'gtk_tree_selection_select_path'后调用'gtk_tree_path_free()'*时,OP中的代码才能工作,对吗? – user4815162342 2014-11-01 20:13:30

+0

@ user4815162342对。我重写了简化。谢谢。 – unwind 2014-11-02 09:52:21