在GTK 3中,如何将主题的图标添加到树视图的列中?在我下面的代码片段中,我试图在树视图的第三列中添加Gnome删除图标。
我设置第三个树视图列如下:
GtkCellRenderer *rendererDelete;
GtkTreeViewColumn *columnDelete;
rendererDelete = gtk_cell_renderer_pixbuf_new();
columnDelete = gtk_tree_view_column_new_with_attributes("Delete",
rendererDelete,
"gicon",
DELETE_ICON,
NULL);
我试图检索Gnome "delete"图标如下:
GdkPixbuf * delete_icon = gtk_icon_theme_load_icon(
gtk_icon_theme_get_default(),
"edit-delete", /* This parameter is obviously incorrect; what is the correct value? */
GTK_ICON_SIZE_BUTTON,
GTK_ICON_LOOKUP_USE_BUILTIN,
NULL);
然后将整个记录追加到列表存储中。
gtk_list_store_set(list_store, &iter,
ACCOUNT_NUMBER, local_account->number,
DESCRIPTION, local_account->description,
DELETE_ICON, delete_icon,
FALSE,
-1);
字符串edit-delete
正确。可能的字符串为/usr/share/icons/gnome/16x16/actions
中的文件名。如gtk-underline.png
的图标,使用字符串gtk-underline
.
我的错误是没有正确实例化GtkListStore
。
GtkListStore *list_store = gtk_list_store_new(
N_COLUMNS,
G_TYPE_STRING,
G_TYPE_STRING,
GDK_TYPE_PIXBUF);
在上一个位置我错误地使用了错误的数据类型。