我正在使用GAppInfo/GDesktopAppInfo。
GIcon *icon = gtk_app_info_get_icon (G_APP_INFO(appinfo));
现在我需要把它放在GtkIconView上,但是我发现没有办法从GIcon创建一个GdkPixbuf。有人知道这个吗?非常感谢!
编辑1:实际上是GThemedIcon。
发布于 2012-08-21 22:02:35
来自文档
GIcon没有为图标提供实际的像素映射,因为这超出了GIO的范围,但是GIcon的实现可能包含图标的名称(参见GThemedIcon)或图标的路径(参见GLoadableIcon)。
但是,知道图标名称可能有助于获取实际的像素图。例如,卷筒项目使用以下函数从GtkIconTheme和GThemedIcon获得像素
GdkPixbuf *
get_icon_pixbuf (GtkIconTheme *icon_theme,
GThemedIcon *icon,
int size)
{
char **icon_names;
GtkIconInfo *icon_info;
GdkPixbuf *pixbuf;
GError *error = NULL;
g_object_get (icon, "names", &icon_names, NULL);
icon_info = gtk_icon_theme_choose_icon (icon_theme, (const char **)icon_names, size, 0);
pixbuf = gtk_icon_info_load_icon (icon_info, &error);
if (pixbuf == NULL) {
g_warning ("could not load icon pixbuf: %s\n", error->message);
g_clear_error (&error);
}
gtk_icon_info_free (icon_info);
g_strfreev (icon_names);
return pixbuf;
}https://stackoverflow.com/questions/12060387
复制相似问题