2016-07-30 81 views
0

我正在更新一个GTK +程序,尝试使用“图标名称”属性将使用“stock id”的所有“股票图标”实例替换为图标。我有点困惑的地方是如何获得图标的大小。如何将符号GtkIconSize转换为以像素为单位的整数大小?

我有一个使用gtk_render_icon_pixbuf功能从库存图标的图像获得的pixbuf一些代码:

if image.storage_type == 'STOCK' then 
    return image:render_icon_pixbuf(image.stock, image.icon_size) 
end 

现在,我想使这个代码的图像相当于使用icon_name而不是股票IDS。我尝试使用gtk_icon_theme_load_icon功能:

if image.storage_type == 'ICON_NAME' then 
    local icon_theme = Gtk.IconTheme.get_default() 
    return icon_theme:load_icon(image.icon_name, image.icon_size, 0, nil) 

但是,图标大小出来的错误(它总是最小的图标大小可用)。我认为它的原因是icon-size属性在GtkIconSize枚举中是一个符号值,而gtk_icon_theme_load_icon需要以像素为单位的图标大小。

有没有办法将GtkIconSize转换为像素值?

或者我应该指定我的图标大小与其他属性而不是icon-size

+0

我不知道怎么LGI暴露这一点,但:

在LGI可以这样调用。 – andlabs

+0

@andlabs:谢谢!那正是我所需要的。 – hugomg

回答

0

您可以使用gtk_icon_size_lookup函数将符号图标大小转换为以像素为单位的长度。 `gtk_icon_size_lookup()`

local width, height = Gtk.icon_size_lookup(image.icon_size) 
相关问题