2014-10-29 139 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