如何将符号GtkIconSize转换为整数大小(以像素为单位)?

时间:2016-07-30 18:52:03

标签: gtk gtk3 lgi

我正在更新GTK +程序,试图替换"股票图标的所有实例"使用"股票ID"使用" icon-name"属性。我有点困惑的一个地方是如何获得图标的大小。

我有一些代码使用gtk_render_icon_pixbuf函数从带有股票图标的图像中获取pixbuf:

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

现在我想为使用icon_name而不是stock id的图像制作相应的代码。我尝试使用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来指定我的图标大小?

1 个答案:

答案 0 :(得分:0)

您可以使用gtk_icon_size_lookup功能将符号图标大小转换为以像素为单位的长度。

在lgi中可以像这样调用:

local width, height = Gtk.icon_size_lookup(image.icon_size)