在gtk+2.0中GtkCellRenderer负责渲染Treeview,通过设置属性可以设置整列的单元格前景和背景色
GdkColor dirBgColor;
dirBgColor.red = 65000;
dirBgColor.green = 55000;
dirBgColor.red = 55000;
GdkColor dirFgColor;
dirFgColor.red = 55000;
dirFgColor.green = 65000;
dirFgColor.red = 55000;
//设置前景色
g_object_set(G_OBJECT(renderer), "foreground-gdk", &dirFgColor, NULL);
//设置背景色
g_object_set(G_OBJECT(renderer), "cell-background-gdk", &dirBgColor, NULL);但是如果想要实现每行不同的颜色。也就是给每个单元格设置颜色,可以使用一个颜色列,通过gtk_tree_view_column_new_with_attributes这个函数把颜色列设置成属性。
GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes ("Name", renderer,
"text", NAME_COLUMN,
"background",COLOR_COLUMN,
NULL);其中的第二个参数"background"就是指定COLOR_COLUMN列为背景颜色属性。也可以设置"foreground"就是前景色。
在添加新行数据时只需要添加颜色属性就行了
实现的效果就是这种