2016-07-30 120 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) 
相關問題