当我在 Glade 中创建树视图时如何将数据添加到 list_store

How to add data to list_store when I have create a treeview in Glade

我已经解决了信号连接中的一个问题,但在另一个问题中我被另一个问题弄糊涂了。我在Glade中创建了一个treeview,在Glade中操作list_store中的数据就成功了。但是,当我想通过编码添加数据时,我失败了。以下是主要代码。如果你能帮助我,我将不胜感激。

#include "gtk/gtk.h"

typedef struct _MainDate{

    GtkWidget *main_window;
    GtkWidget *delete_button;
    GtkWidget *choose_button;
    GtkListStore *liststore_1;
    GtkTreeViewColumn *name;
    GtkTreeViewColumn *phone;
    GtkTreeView *view;
}MainDate;


int main(int argc,char *argv[]){

    GtkBuilder *builder;
    GtkTreeIter iter;
    MainDate *date;
    GError  *error = NULL;

    gtk_init(&argc,&argv);

    builder = gtk_builder_new();
   if(!(gtk_builder_add_from_file(builder,"main_window.glade",&error))){
        g_warning("%s",error->message);
        g_free(error);
        return 1;
    }

    date = g_slice_new(MainDate);

    date->main_window = GTK_WIDGET(gtk_builder_get_object(builder,"main_window"));
    date->liststore_1 = GTK_LIST_STORE(gtk_builder_get_object(builder,"main_window"));
    date->name = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"name"));
    date->phone = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"phone"));

    gtk_list_store_append(date->liststore_1,&iter);
    gtk_list_store_set(date->liststore_1,&iter,date->name,"陈婷婷",date->phone,"18202731442",-1);


    gtk_builder_connect_signals(builder,date);
    g_object_unref(builder);

    gtk_widget_show_all(date->main_window);
    gtk_main();

    g_slice_free(MainDate,date);

    return 0;
}

您正在将指向 GtkTreeViewColumn 的指针传递给 gtk_list_store_set()。这是错误的;它应该是 numbers 列,其中 0 是第一列。例如,如果名称列是第 0 列,phone 列是第 1 列,那么该行应该是

gtk_list_store_set(date->liststore_1,&iter,0,"陈婷婷",1,"18202731442",-1);