#include #include void set_data(GtkTreeStore *treestore) { GtkTreeIter iter; gtk_tree_store_append(treestore,&iter,NULL); gtk_tree_store_set(treestore,&iter,0,"Z",-1); gtk_tree_store_append(treestore,&iter,NULL); gtk_tree_store_set(treestore,&iter,0,"C",-1); gtk_tree_store_append(treestore,&iter,NULL); gtk_tree_store_set(treestore,&iter,0,"B",-1); gtk_tree_store_append(treestore,&iter,NULL); gtk_tree_store_set(treestore,&iter,0,"D",-1); gtk_tree_store_append(treestore,&iter,NULL); gtk_tree_store_set(treestore,&iter,0,"A",-1); } GtkWidget *create_tree(GtkTreeStore **treestore, GtkCellRenderer *renderer) { GtkWidget *treeview, *win; GtkTreeViewColumn *col1; *treestore=gtk_tree_store_new(2,G_TYPE_STRING,G_TYPE_STRING); col1=gtk_tree_view_column_new_with_attributes("Tree",renderer, "text",0,NULL); treeview=gtk_tree_view_new_with_model(GTK_TREE_MODEL(*treestore)); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview),col1); gtk_tree_view_column_set_sort_column_id(col1,0); gtk_tree_view_column_set_sort_order(col1,GTK_SORT_ASCENDING); gtk_tree_view_column_set_sort_indicator(col1,TRUE); win=gtk_scrolled_window_new(NULL,NULL); gtk_container_add(GTK_CONTAINER(win),treeview); return win; } int main(int argc, char *argv[]) { GtkWidget *win, *tree; GtkTreeStore *store; GtkCellRenderer *renderer; gtk_init(&argc,&argv); win=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(win),300,200); g_signal_connect(G_OBJECT(win),"delete_event",G_CALLBACK(gtk_main_quit),NULL); renderer=gtk_cell_renderer_text_new(); gtk_container_add(GTK_CONTAINER(win),(tree=create_tree(&store,renderer))); set_data(store); gtk_widget_show_all(win); gtk_main(); return 0; }