1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
#include <gtk/gtk.h>
#include <stdio.h>
void start_gtk(int argc, char **argv)
{
GtkWidget *vbox;
GtkWidget *win;
GtkListStore *pListStore;
GtkWidget *pListView;
gtk_init(&argc, &argv);
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width(GTK_CONTAINER(win), 0);
gtk_window_set_title(GTK_WINDOW(win), "title");
gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(win), 600, 400);
gtk_widget_realize(win);
g_signal_connect(win, "destroy", gtk_main_quit, NULL);
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(win), vbox);
/* **** Gtkliststore *************** */
pListStore = gtk_list_store_new(1, G_TYPE_INT);
pListView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pListStore));
// XXX - Most likely you should unref pListStore now
g_object_unref(pListStore);
// /XXX
GtkCellRenderer *pCellRenderer;
pCellRenderer = gtk_cell_renderer_progress_new();
// XXX - Here's your problem: After "value", which is an attribute, you need to provide
// the column number to map the attribute to, 0 in this case. Then you can end
// the function call with NULL.
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(pListView), 0, "Progress", pCellRenderer, "value", 0, NULL);
/* gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(pListView), 0, "Progress", pCellRenderer, "value", NULL); */
// /XXX
gtk_box_pack_start(GTK_BOX(vbox), pListView, TRUE, TRUE, 0);
/* ********************************** */
/* **** Test : progress bar : 30% ** */
GtkTreeIter pIter;
gtk_list_store_append(pListStore, &pIter);
gtk_list_store_set(pListStore, &pIter, 0, 30, -1);
/* ********************************** */
gtk_widget_show_all(win);
gtk_main();
}
int main(int argc, char ** argv)
{
start_gtk(argc, argv);
// XXX - If you're #including stdio.h already then you may as well
// #include <stdlib.h> too and use EXIT_SUCCESS and EXIT_FAILURE
return 1;
// /XXX
} |
Partager