首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将GIcon转换为GdkPixbuf

将GIcon转换为GdkPixbuf
EN

Stack Overflow用户
提问于 2012-08-21 17:55:35
回答 1查看 991关注 0票数 1

我正在使用GAppInfo/GDesktopAppInfo。

GIcon *icon = gtk_app_info_get_icon (G_APP_INFO(appinfo));

现在我需要把它放在GtkIconView上,但是我发现没有办法从GIcon创建一个GdkPixbuf。有人知道这个吗?非常感谢!

编辑1:实际上是GThemedIcon。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-21 22:02:35

来自文档

GIcon没有为图标提供实际的像素映射,因为这超出了GIO的范围,但是GIcon的实现可能包含图标的名称(参见GThemedIcon)或图标的路径(参见GLoadableIcon)。

但是,知道图标名称可能有助于获取实际的像素图。例如,卷筒项目使用以下函数从GtkIconTheme和GThemedIcon获得像素

代码语言:javascript
复制
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;
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12060387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档