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 Standardthema dargestellt werden können. Daher erstelle ich meine eigenen.
Ich ging einfach zu /usr/share/icons/gnome/scalable/actions/
, kopierte einige lokal in den Quellbaum meiner App, der als Grundlage dienen konnte, und begann, sie zu bearbeiten.
So weit, ist es gut. Aber ich habe Folgendes bemerkt: Alle symbolischen Symbole haben eine hellgraue Farbe, wenn Sie die ursprüngliche .svg-Datei betrachten, aber wenn sie in ein Widget eingefügt werden, werden sie dunkler.
Hier ist ein Beispiel mit dem /usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svg
Symbol aus dem Standardthema:
- So sieht es aus, wenn Sie das Original mit Inkscape öffnen:
- Und so sieht es in einer Symbolleiste einer laufenden Anwendung aus:
Beachten Sie, dass das Symbol zur Laufzeit viel dunkler ist. Dies geschieht sowohl bei den Themen Ambiance als auch Radiance.
Es würde mir nicht viel ausmachen, aber ich bemerkte, dass es mein benutzerdefiniertes Symbol beeinflusst, wodurch Teile davon dunkler werden (die innere Füllung), während Teile davon die gleiche Farbe wie das Original behalten (der Strich).
Was bewirkt also, dass die symbolischen Standardsymbole dunkler werden und wie sollte dies für meine benutzerdefinierten Symbole implementiert werden?
quelle
Antworten:
#bebebeff
). Sie können dann basierend auf demfg_color
durch das Thema insettings.ini
(GTK3) odergtkrc
(GTK2) definierten Wert gefärbt werden . oder auf diefg_color
im CSS definierte (GTK3).fg_color
) auf dunkelgrau (#4c4c4c
) gesetzt/usr/share/themes/Ambiance/gtk-3.0/settings.ini
, weshalb die symbolischen Symbole dunkler erscheinen.Damit benutzerdefinierte symbolische Symbole gleich aussehen, müssen Sie den Strich entfernen und nur mit dem auf RGBA festgelegten Wert füllen verwenden
#bebebeff
. Andernfalls wird der Strich immer als festgelegt angezeigt (dh grau oder in welcher Farbe auch immer).Dies gibt uns ein schönes und gleichmäßig aussehendes symbolisches "MyRefresh" -Symbol:
quelle
#bebebeff
?fg_color
(es verwendet libRSVG ); Der Motor unterscheidet offensichtlich zwischen den Füllungen und den Hüben und scheint so codiert zu sein, dass erfg_color
nur auf die Füllung angewendet wird, während der Hub unverändert bleibt. Dies ist möglich, da SVG ein vektorisiertes (parametrisiertes) Format ist, während für die üblichen Bitmap-Symbole alles nur Pixel sind :)Symbolische Symbole werden normalerweise vom Thema mithilfe der Eigenschaft "Farbe" 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:
quelle