Hi,
I am experimenting with GTK 2.2.1 on a RedHat 9 system.
I am reading the GTK2+ API examples and have come to this problem:
I want to display int and double values in a column aligned to the right
and I want to override the default format string from "%lf" to "%.2lf".
I am doing this (following line-by-line the API doc example):
GtkTreeIter iter;
items = gtk_list_store_new (N_ITEMS,
G_TYPE_STRING, G_TYPE_STRING,
G_TYPE_BOOLEAN, G_TYPE_INT,
G_TYPE_DOUBLE, G_TYPE_DOUBLE, G_TYPE_DOUBLE);
/* just an example line to see something */
gtk_list_store_append (items, &iter);
gtk_list_store_set (items, &iter,
ITEM_BARCODE, "1234567890128",
ITEM_NAME, "Example",
ITEM_STORNO, FALSE, /* not displayed column */
ITEM_COLLECTOR, 1,
ITEM_MULTIPLIER, 2.25,
ITEM_PRICE, 27.0,
ITEM_TOTAL, 2.25*27.0,
-1);
myview = GTK_TREE_VIEW(lookup_widget(window1, "treeview1"));
gtk_tree_view_set_model(myview, GTK_TREE_MODEL(items));
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(
"Barcode", renderer,
"text", ITEM_BARCODE,
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW(myview), column);
gtk_tree_view_column_set_min_width (column, 110);
gtk_tree_view_column_set_max_width (column, 110);
gtk_tree_view_column_set_fixed_width (column, 110);
column = gtk_tree_view_column_new_with_attributes(
"Name", renderer,
"text", ITEM_NAME,
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW(myview), column);
gtk_tree_view_column_set_min_width (column, 160);
gtk_tree_view_column_set_max_width (column, 160);
gtk_tree_view_column_set_fixed_width (column, 160);
column = gtk_tree_view_column_new_with_attributes(
"Collector", renderer,
"text", ITEM_COLLECTOR,
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW(myview), column);
gtk_tree_view_column_set_min_width (column, 45);
gtk_tree_view_column_set_max_width (column, 45);
gtk_tree_view_column_set_fixed_width (column, 45);
gtk_tree_view_column_set_alignment (column, 1.0);
column = gtk_tree_view_column_new_with_attributes(
"Multiplier", renderer,
"text", ITEM_MULTIPLIER,
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW(myview), column);
gtk_tree_view_column_set_min_width (column, 60);
gtk_tree_view_column_set_max_width (column, 60);
gtk_tree_view_column_set_fixed_width (column, 60);
gtk_tree_view_column_set_alignment (column, 1.0);
column = gtk_tree_view_column_new_with_attributes(
"Price", renderer,
"text", ITEM_PRICE,
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW(myview), column);
gtk_tree_view_column_set_min_width (column, 90);
gtk_tree_view_column_set_max_width (column, 90);
gtk_tree_view_column_set_fixed_width (column, 90);
gtk_tree_view_column_set_alignment (column, 1.0);
column = gtk_tree_view_column_new_with_attributes(
"Total", renderer,
"text", ITEM_TOTAL,
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW(myview), column);
gtk_tree_view_column_set_min_width (column, 90);
gtk_tree_view_column_set_max_width (column, 90);
gtk_tree_view_column_set_fixed_width (column, 90);
gtk_tree_view_column_set_alignment (column, 1.0);
What I get is the GtkTreeView widget's labels are aligned to the right
in the columns where I set but the values are not. Is it OK to use the
same GtkCellRendererText for all the columns? Or should I have to
use different renderers for differently formatted columns?