将列表添加到C中的gtk_树视图

将列表添加到C中的gtk_树视图,gtk,gtktreeview,Gtk,Gtktreeview,各位 我要试着做一个小函数,它与我所做的Gtk_树视图有关, 错误响应如下所示: (main:8026): Gtk-CRITICAL **: IA__gtk_tree_view_get_model: assertion `GTK_IS_TREE_VIEW (tree_view)' failed (main:8026): Gtk-CRITICAL **: IA__gtk_list_store_append: assertion `GTK_IS_LIST_STORE (list_store)' f

各位

我要试着做一个小函数,它与我所做的Gtk_树视图有关, 错误响应如下所示:

(main:8026): Gtk-CRITICAL **: IA__gtk_tree_view_get_model: assertion `GTK_IS_TREE_VIEW (tree_view)' failed

(main:8026): Gtk-CRITICAL **: IA__gtk_list_store_append: assertion `GTK_IS_LIST_STORE (list_store)' failed

(main:8026): Gtk-CRITICAL **: IA__gtk_list_store_set_valist: assertion `GTK_IS_LIST_STORE (list_store)' failed
^C
  typedef struct
    {
        GtkWidget *window;
        GtkWidget *notebook;
        GtkWidget *start;
        GtkWidget *verbose;
        GtkWidget *settings;
        GtkWidget *about;
        GtkWidget *statusbar;
        GtkWidget *treeview_aktifitas;
        guint statusbar_id;
    } bahan;
来源,给你:

 void addlist(bahan *unit, const gchar *str)
    {
        GtkListStore *store;
        GtkTreeIter iter; // penyambung store_append and store_set

        store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(unit->treeview_aktifitas)));

        gtk_list_store_append(store, &iter); // need unary &, coz iter aint define like a pointer
        gtk_list_store_set(store, &iter, 1, str, -1);
    }
正如你所想,“单位”的结构应该是这样的:

(main:8026): Gtk-CRITICAL **: IA__gtk_tree_view_get_model: assertion `GTK_IS_TREE_VIEW (tree_view)' failed

(main:8026): Gtk-CRITICAL **: IA__gtk_list_store_append: assertion `GTK_IS_LIST_STORE (list_store)' failed

(main:8026): Gtk-CRITICAL **: IA__gtk_list_store_set_valist: assertion `GTK_IS_LIST_STORE (list_store)' failed
^C
  typedef struct
    {
        GtkWidget *window;
        GtkWidget *notebook;
        GtkWidget *start;
        GtkWidget *verbose;
        GtkWidget *settings;
        GtkWidget *about;
        GtkWidget *statusbar;
        GtkWidget *treeview_aktifitas;
        guint statusbar_id;
    } bahan;
并通过此连接:

  unit->treeview_aktifitas = GTK_WIDGET(gtk_builder_get_object(main,"treeview1"));
在真实的情况下,我使用'Glade3',并在glade文件上有两列,如何设置gtk_列表_存储_集


非常感谢任何进一步的帮助:)

嗯,我现在已经找到了故障

    gtk_list_store_set(store, &iter, 1, str, -1);
因为我的专栏是两个,所以我需要

    gtk_list_store_set(store, &iter, 0,"aku", 1, "tes", -1);

其中0代表第一列,1代表下一列,依此类推-"-

也许这对你有帮助-(gtk+treeview教程)thx的努力应该让我负担得起…发布glade文件可能会有用。你在哪里为treeview设置模型?