Я создаю приложение, которое использует символьные значки от темы по умолчанию.
Однако существует несколько значков, в которых я нуждаюсь, который не может быть представлен теми, которые от темы по умолчанию, таким образом, я создаю свои собственные.
То, что я сделал, должно было просто перейти в /usr/share/icons/gnome/scalable/actions/
, скопированный некоторые локально в исходное дерево моего приложения, которое могло служить основанием и начало редактировать их.
Пока все хорошо. Но я заметил следующее: все символьные значки имеют светло-серый цвет при рассмотрении исходного .svg файла, но когда они помещаются на виджет, они становятся более темными.
Вот пример, с помощью /usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svg
значок от темы по умолчанию:
Заметьте значок, являющийся намного более темным во времени выполнения. Это происходит и с темами Окружения и Сияния.
Я не возражал бы очень, но я заметил, что это влияет на мой пользовательский значок, посредством чего части его становятся более темными (внутренняя заливка), тогда как части его остаются тем же цветом как оригинал (штрих).
Таким образом, что заставляет символьные значки по умолчанию темнеть и как должен реализовать это для моих пользовательских значков?
#bebebeff
). Они могут затем быть окрашены на основе fg_color
значение, определенное темой в settings.ini
(GTK3) или gtkrc
(GTK2); или на fg_color
определенный в CSS (GTK3). fg_color
) установлен на темно-серый (#4c4c4c
) в /usr/share/themes/Ambiance/gtk-3.0/settings.ini
, который является, почему символьные значки кажутся более темными.Чтобы заставить пользовательские символьные значки выглядеть одинаково, необходимо удалить штрих и использовать только заливку с набором значений RGBA к #bebebeff
; иначе штрих будет всегда появляться, как установлено (т.е. серый или безотносительно цвета).
Это дает нам хороший и ровно выглядящий символьный значок "MyRefresh":
Один пользователь указал, что другой, более темный значок открывался вместо гнома по умолчанию символьный значок; как этот strace шоу, то утверждение является неправильным:
Символические иконки обычно задаются темой с помощью свойства «color», это их большое преимущество, они хорошо смотрятся на любом фоне. Однако вы можете загрузить их своим собственным цветом.
Пример кода Вала:
//get the icon theme and lookup the icon we want by name, here at a size of 64px
var info = Gtk.IconTheme.get_default ().lookup_icon ("view-refresh-symbolic", 64, 0);
//now load the icon as a symbolic with a color set in the brackets as RGBA, here as plain red
var pixbuf = info.load_symbolic ({1, 0, 0, 1});
//finally we just put in a GtkImage to render it
var image_widget = new Gtk.Image.from_pixbuf (pixbuf);