Почему делают GNOME, символьные значки кажутся более темными в запущенном приложении?

Я создаю приложение, которое использует символьные значки от темы по умолчанию.

Однако существует несколько значков, в которых я нуждаюсь, который не может быть представлен теми, которые от темы по умолчанию, таким образом, я создаю свои собственные.

То, что я сделал, должно было просто перейти в /usr/share/icons/gnome/scalable/actions/, скопированный некоторые локально в исходное дерево моего приложения, которое могло служить основанием и начало редактировать их.

Пока все хорошо. Но я заметил следующее: все символьные значки имеют светло-серый цвет при рассмотрении исходного .svg файла, но когда они помещаются на виджет, они становятся более темными.

Вот пример, с помощью /usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svg значок от темы по умолчанию:

  • Вот то, на что это похоже при открытии оригинала с Inkscape:

view-refresh-symbolic on Inkscape

  • И вот то, на что это похоже на панели инструментов на запущенном приложении:

view-refresh-symbolic on at runtime

Заметьте значок, являющийся намного более темным во времени выполнения. Это происходит и с темами Окружения и Сияния.

Я не возражал бы очень, но я заметил, что это влияет на мой пользовательский значок, посредством чего части его становятся более темными (внутренняя заливка), тогда как части его остаются тем же цветом как оригинал (штрих).

Таким образом, что заставляет символьные значки по умолчанию темнеть и как должен реализовать это для моих пользовательских значков?

10
задан 23 June 2012 в 07:11

2 ответа

  • Символьные значки создаются во включенном цветностью цвете, сером с полной непрозрачностью (#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; иначе штрих будет всегда появляться, как установлено (т.е. серый или безотносительно цвета).

    • В Inkscape просто выберите объект, откройте Fill и Stroke, и не нажмите ни на Какую Краску (x) значок под "Штриховой Краской":

    enter image description here

  • Это дает нам хороший и ровно выглядящий символьный значок "MyRefresh":

    enter image description here


Один пользователь указал, что другой, более темный значок открывался вместо гнома по умолчанию символьный значок; как этот strace шоу, то утверждение является неправильным:

enter image description here

15
ответ дан 23 June 2012 в 07:11

Символические иконки обычно задаются темой с помощью свойства «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);
0
ответ дан 23 June 2012 в 07:11

Другие вопросы по тегам:

Похожие вопросы: