#include <gtk/gtk.h> #include <glib.h> #include <glib/gprintf.h> enum { LIST_ICON = 0, LIST_TEXT, LIST_COLOR, N_COLUMNS }; void window_close1(GtkWidget *widget, gpointer data) { gtk_main_quit(); } void list_append(GtkWidget *treeview, const gchar *icon, const gchar *str, const gchar *color) { GtkListStore *store; GtkTreeIter iter; store = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview)); gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, LIST_ICON,icon, LIST_TEXT,str, LIST_COLOR,color, -1); } int view1_main(int argc, char *argv[]) { GtkWidget *window; GtkBuilder *builder; GtkWidget *treeview = NULL; GtkTreeViewColumn *column; GtkCellRenderer *renderer_text; GtkListStore *store; GtkWidget *treeview1 = NULL; gtk_init(&argc, &argv); builder = gtk_builder_new(); gtk_builder_add_from_file(builder, "view1.glade", NULL); treeview = GTK_TREE_VIEW(gtk_builder_get_object(builder, "treeview1")); if(NULL == treeview) { printf("NULL/n"); return -1; } renderer_text = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes("a1", renderer_text, "text",LIST_ICON,NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); column = gtk_tree_view_column_new_with_attributes("a2", renderer_text, "text",LIST_TEXT,NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); column = gtk_tree_view_column_new_with_attributes("a3", renderer_text, "text",LIST_COLOR,NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); store = gtk_list_store_new(N_COLUMNS,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING); gtk_list_store_clear(store); gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), GTK_TREE_MODEL(store)); g_object_unref(store); list_append(treeview, "aa","xxx","black"); list_append(treeview, "bbs","xxx","black"); window = GTK_WIDGET(gtk_builder_get_object(builder, "main_window")); g_signal_connect(window, "destroy", G_CALLBACK(window_close1), NULL); gtk_widget_show_all(window); gtk_main(); return 0; }