2011-09-28 48 views
1

我需要將我自己的圖像添加到GTK圖標主題,所以我需要以不同方式確定像素大小GTK用於顯示不同預定義大小的圖標:GTK_ICON_SIZE_BUTTONGTK_ICON_SIZE_MENU,GTK_ICON_SIZE_DIALOG等GTK手冊規定尺寸可用作值gtk-icon-sizesGtkSetting的財產。我已經執行下列上最新的Ubuntu代碼:GTK:如何獲取GTK_ICON_SIZE_BUTTON等的寬度和高度?

#!/usr/bin/env python 
import gtk; print(gtk.settings_get_default().get_property('gtk-icon-sizes')) 

但輸出非常短:

'panel-menu=22,22;gtk-button=16,16' 

我在哪裏可以找到的大小的休息,例如用於GTK_ICON_SIZE_DIALOGGTK_ICON_SIZE_LARGE_TOOLBAR

回答

2

GTK將圖標大小調整爲他們需要的大小。根據Icon Theme Specification,您至少應制作一個48x48圖標,並可選擇一個可縮放的SVG圖標。這足以顯示任何這些尺寸。

Tango Icon Theme Guidelines建議您可以製作一些補充尺寸,以最大限度地減少GTK在內部調整圖標的頻率。

+0

感謝。但是,如果gtk-icon-sizes中沒有這樣的值,GTK是如何知道像素大小是多少GTK_ICON_SIZE_LARGE_TOOLBAR?它在某處是硬編碼的嗎? – grigoryvp

+0

不,它是由主題指定的,我相信。 – erick2red

+0

@erick沒有可用的API來獲得這樣的大小? :(我的一個圖標需要動態生成(不是來自文件),所以我需要知道環繞圖標的像素大小,所以我生成的圖標適合 – grigoryvp

0

只需使用gtk_icon_theme_add_builtin_icon將圖像添加到圖標列表中,然後將它們用作命名圖標即可。

在瓦拉一個例子:

Gdk.Pixbuf pixbuf; 
pixbuf = new Gdk.Pixbuf.from_file_at_size(Path.build_filename(AutovalaPluginConstants.DATADIR,"valaplugin","application.svg"),-1,-1); 
Gtk.IconTheme.add_builtin_icon("autovala-plugin-executable",-1,pixbuf);