it-swarm.com.de

Warum erscheinen die GNOME-Symbole in einer laufenden Anwendung dunkler?

Ich erstelle eine Anwendung, die symbolische Symbole aus dem Standarddesign verwendet.

Es gibt jedoch einige Symbole, die ich benötige und die nicht durch die Symbole aus dem Standarddesign dargestellt werden können. Daher erstelle ich meine eigenen.

Ich ging einfach zu /usr/share/icons/gnome/scalable/actions/, kopierte einige lokal in den Quelltextbaum meiner App, der als Grundlage dienen konnte, und begann, sie zu bearbeiten.

So weit, ist es gut. Folgendes ist mir jedoch aufgefallen: Alle symbolischen Symbole haben eine hellgraue Farbe, wenn Sie sich die ursprüngliche .svg-Datei ansehen, aber wenn sie in ein Widget eingefügt werden, werden sie dunkler.

Hier ist ein Beispiel mit dem Symbol /usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svg aus dem Standarddesign:

  • So sieht es aus, wenn Sie das Original mit Inkscape öffnen:

view-refresh-symbolic on Inkscape

  • Und so sieht es in einer Symbolleiste einer laufenden Anwendung aus:

view-refresh-symbolic on at runtime

Beachten Sie, dass das Symbol zur Laufzeit viel dunkler ist. Dies gilt sowohl für die Ambiance- als auch für die Radiance-Themen.

Es würde mir nicht viel ausmachen, aber ich bemerkte, dass es sich auf mein benutzerdefiniertes Symbol auswirkt, wobei Teile davon dunkler werden (die innere Füllung), während Teile derselben Farbe wie das Original bleiben (der Strich).

Was bewirkt also, dass die Standardsymbole dunkler werden, und wie sollte dies für meine benutzerdefinierten Symbole implementiert werden?

10
David Planella
  • Die symbolischen Symbole werden in einer chroma-keyed Farbe erstellt, grau mit voller Deckkraft (#bebebeff). Sie können dann basierend auf dem Wert für fg_color, der durch das Thema in settings.ini (GTK3) oder gtkrc (GTK2) definiert ist, eingefärbt werden. oder auf den in der CSS (GTK3) definierten fg_color.
    • z. B. wird für Ambiance die Vordergrundfarbe (fg_color) in #4c4c4c auf dunkelgrau (/usr/share/themes/Ambiance/gtk-3.0/settings.ini) gesetzt, weshalb die symbolischen Symbole dunkler erscheinen.
  • Damit benutzerdefinierte symbolische Symbole gleich aussehen, Sie müssen den Strich entfernen und nur Füllung mit dem RGBA-Wert verwenden, der auf #bebebeff festgelegt ist; Andernfalls wird der Strich immer als festgelegt angezeigt (d. h. grau oder in welcher Farbe auch immer).

    • Wählen Sie in Inkscape einfach das Objekt aus, öffnen Sie Füllen und Konturieren und klicken Sie auf das Symbol Kein Malen (x) unter "Konturieren" Farbe":

    enter image description here

  • Dies gibt uns ein schönes und gleichmäßig aussehendes "MyRefresh" -Symbol:

    enter image description here


Ein Benutzer gab an, dass ein anderes, dunkleres Symbol anstelle des Standardsymbols für den Gnom geöffnet wurde. Wie diese Linie zeigt, ist diese Behauptung falsch:

enter image description here

15
ish

Symbolische Symbole werden normalerweise durch das Thema mit der Eigenschaft "color" festgelegt. Das ist ihr großer Vorteil, sie sehen auf jedem Hintergrund gut aus. Sie können sie jedoch mit Ihrer eigenen Farbe laden.

Beispiel Vala Code:

//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);
3
Tom