c - GTK 3.0 -如何在树视图列中添加主题图标



在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);

在上一个位置我错误地使用了错误的数据类型。

最新更新