为什么 GNOME 符号图标在正在运行的应用程序中显得更暗?

Dav*_*lla 10 themes icons gtk application-development

我正在创建一个使用默认主题中的符号图标的应用程序。

但是,有一些我需要的图标无法由默认主题中的图标表示,因此我正在创建自己的图标。

我所做的只是简单地转到/usr/share/icons/gnome/scalable/actions/,将一些本地复制到我的应用程序的源代码树中作为基础,然后开始编辑它们。

到现在为止还挺好。但我注意到以下几点:当查看原始 .svg 文件时,所有符号图标都是浅灰色的,但是当它们放在小部件上时,它们会变暗。

这是一个示例,使用/usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svg默认主题中的图标:

  • 这是使用 Inkscape 打开原件时的样子:

Inkscape 上的视图刷新符号

  • 这是正在运行的应用程序的工具栏上的样子:

在运行时查看刷新符号

注意图标在运行时更暗。Ambiance 和 Radiance 主题都会发生这种情况。

我并不介意,但我注意到它会影响我的自定义图标,其中一部分变得更暗(内部填充),而一部分保持与原始颜色相同(笔触)。

那么是什么导致默认符号图标变暗,以及如何为我的自定义图标实现它?

ish*_*ish 15

  • 符号图标以色度键控颜色创建,灰色且完全不透明 ( #bebebeff)。然后可以根据(GTK3) 或(GTK2) 中fg_color主题定义的值对它们进行着色;或在CSS (GTK3) 中定义。 settings.inigtkrcfg_color
    • 例如,对于Ambiance,前景色 ( fg_color) 在 中设置为深灰色 ( #4c4c4c) /usr/share/themes/Ambiance/gtk-3.0/settings.ini,这就是符号图标显得更暗的原因。
  • 要使自定义符号图标看起来相同,您必须删除笔划并仅使用将 RGBA 值设置为#bebebeff; 的填充。否则,笔划将始终显示为设置(即,灰色或任何颜色)。

    • 在 Inkscape 中,只需选择对象,打开Fill and Stroke,然后单击“Stroke Paint”下的No Paint (x) 图标:

    在此处输入图片说明

  • 这为我们提供了一个漂亮且外观均匀的“MyRefresh”符号图标:

    在此处输入图片说明


一位用户表示正在打开一个不同的、更暗的图标,而不是默认的 gnome 符号图标;正如此 strace 所示,该断言是不正确的:

在此处输入图片说明