2
GtkWidget *tree_view;
GtkListStore *tree_store;
GtkTreeModel *tree_model;
tree_store = gtk_list_store_new(4, G_TYPE_STRING,G_TYPE_STRING,G_TYPE_INT,G_TYPE_FLOAT);
tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(tree_store));
GtkTreeIter iter;
gtk_list_store_append(tree_store, &iter);
for(int j = 0; j < 2; j++) {
GValue value = {0};
g_value_init(&value, G_TYPE_STRING);
g_value_set_string(&value, "1.0");
gtk_list_store_set_value(tree_store, &iter, j, &value);
}
gtk_tree_model_iter_next(tree_model, &iter);
私がしようとしているのは、別の行の値を挿入できるようにイテレータを次の行に移動することです。しかし、最後の行はsegfaultになります。どうしてこれなの?GTKTreeViewに行を追加するときのSegfault
エラー全体を貼り付けることができます – TheGameiswar
@TheGameiswarセグメンテーションフォールト(コアダンプされたもの) –
うーん..しばらくしていましたが、コレクションのアイテムを追加/削除するときにイテレータに注意する必要があることをはっきりと覚えておいてください。変更が行われた後は有効ではありません。 http://stackoverflow.com/questions/6438086/iterator-invalidation-rules – Rob