我正在更新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
来指定我的图标大小?
答案 0 :(得分:0)
您可以使用gtk_icon_size_lookup
功能将符号图标大小转换为以像素为单位的长度。
在lgi中可以像这样调用:
local width, height = Gtk.icon_size_lookup(image.icon_size)