- 论坛徽章:
- 6
|
- #include <stdio.h>
- #include <gtk/gtk.h>
- #include <glib.h>
- enum{
- col_name = 0,
- col_date,
- col_size,
- n_cols
- };
- void
- model_data_new(GtkTreeModel *store, const gchar* name, const char *date, const guint size)
- {
- GtkTreeIter iter;
- gtk_list_store_append(GTK_LIST_STORE(store), &iter);
- gtk_list_store_set(GTK_LIST_STORE(store), &iter,
- col_name, name,
- col_date, date,
- col_size, size,
- -1);
- }
- GtkTreeModel *
- create_model()
- {
- GtkListStore *store;
- store = gtk_list_store_new(n_cols, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT);
- return GTK_TREE_MODEL(store);
- }
- void
- arrange_tree_view(GtkWidget *view)
- {
- GtkCellRenderer *renderer;
- //col 1:name
- renderer = gtk_cell_renderer_text_new();
- gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(view), -1, "name", renderer,"text", col_name, NULL);
- //col 2:date
- gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(view), -1, "date", renderer, "text", col_date, NULL);
- //col 3:size
- gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(view), -1, "size", renderer, "text", col_size, NULL);
- }
- int
- main (int argc, char **argv)
- {
- /*GtkWidget is the storage type for widgets*/
- GtkWidget *window;
- GtkWidget *hbox, *hbox2, *top_hbox;
- GtkWidget *view, *view2;
- /*This is called in all GTK applications. Arguments are pased
- * from the command line and are returned to the application*/
- gtk_init(&argc, &argv);
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(window), "Tree");
- g_signal_connect(G_OBJECT(window), "destroy", gtk_main_quit, NULL);
- top_hbox = gtk_hbox_new(TRUE, 0);
- gtk_container_add(GTK_CONTAINER(window), top_hbox);
- hbox = gtk_hbox_new(TRUE, 0);
- gtk_container_add(GTK_CONTAINER(top_hbox), hbox);
- hbox2 = gtk_hbox_new(TRUE,0);
- gtk_container_add(GTK_CONTAINER(top_hbox), hbox2);
- view = gtk_tree_view_new();
- gtk_container_add(GTK_CONTAINER(hbox), view);
- view2 = gtk_tree_view_new();
- gtk_container_add(GTK_CONTAINER(hbox2), view2);
- //arrange view columns
- arrange_tree_view(view);
- arrange_tree_view(view2);
- //set model
- GtkTreeModel *store = create_model();
- gtk_tree_view_set_model(GTK_TREE_VIEW(view), store);
- gtk_tree_view_set_model(GTK_TREE_VIEW(view2), store);
- model_data_new(store, "test.c", "2012-12-29", 2224);
- model_data_new(store, "xd.c", "2012-12-29", 454);
- g_object_unref(store);
- gtk_widget_show_all(window);
- /*All GTK application must have a gtk_main(). Control ends here
- * and waits for an event to occur (like a key press or
- * mouse event).*/
- gtk_main();
- return 0;
- }
复制代码 暂时完成了个小例子 |
|