So markieren Sie Schaltflächen in einer GTK-Symbolleiste

9

Ich habe eine Anwendung mit Python und Glade geschrieben. Die App hat eine Symbolleiste mit dunklem Hintergrund und jede Symbolleistenschaltfläche hat ein benutzerdefiniertes Bild (dh es werden keine Stock-Symbole verwendet).

Ich habe festgestellt, dass bei Verwendung von Stock-Symbolen anstelle von benutzerdefinierten Bildern als Symbole die Schaltfläche hervorgehoben wird, wenn die Maus über die Schaltfläche bewegt wird, was bei meinen benutzerdefinierten Bildern nicht der Fall ist.

Thunderbird scheint noch einen Schritt weiter zu gehen und anstatt die Symbole hervorzuheben, kehrt es ihre Farbe um, was für ein dunkles Thema recht gut funktioniert (siehe unten):

Taste nicht hervorgehoben, normale Farbe

Geben Sie hier die Bildbeschreibung ein

Taste beim Schweben hervorgehoben, Farbe invertiert

Geben Sie hier die Bildbeschreibung ein

Wie kann ich meine benutzerdefinierten Symbolbilder oder die Schaltflächen beim Hover hervorheben?

David Planella
quelle
Können Sie ein Beispiel nennen, bei dem dies fehlschlägt? Es ist wahrscheinlich ein Themenproblem oder eher ein GTK + -Fehler, wenn es nicht nur funktioniert und Sie nicht nur Bilder in die Symbolleiste stecken, sondern Schaltflächen.
Dobey
Der Code befindet sich unter code.launchpad.net/qreator . Ich habe es noch einmal überprüft und die Symbolleiste verwendet Schaltflächen. Das einzige, was ich mache, ist, Bilder für die Symbole zu laden, soweit ich das beurteilen kann. Auch dies könnte erwähnenswert sein: bazaar.launchpad.net/~dpm/qreator/trunk/view/head:/qreator/…
David Planella
Ich denke, Sie sollten diesen Code entfernen. Es sieht so aus, als ob Gtk2 schnell etwas hinzugefügt hat, um die funky Symbolleiste zu erledigen.
Dobey
Ich habe es tatsächlich hinzugefügt, nachdem ich askubuntu.com/questions/67362/… gelesen hatte - ihr habt es für die GTK Ubuntu One-Benutzeroberfläche verwendet. Hast du es anders gemacht?
David Planella
Das alte GTK + U1-Bedienfeld war Gtk2, und alle Farbänderungen wurden mit benutzerdefinierten Widgets vorgenommen, die bestimmten Elementen des Themas folgten. Wir haben diesen Code nicht verwendet, da bin ich mir sicher. Jede Symbolleiste an der normalen Stelle in einer GtkApplication in Gtk3 sollte genau so funktionieren, wie Sie es erwarten.
Dobey

Antworten:

2

Das Problem ist ein Problem mit dem Ambiance-Thema. Es gibt ein Highlight, aber die Hintergrundfarbe für das Vorlicht ist dunkler. Wenn Thunderbird ein leichtes Highlight anzeigt und die Farben der Symbole invertiert, liegt dies daran, dass in XUL benutzerdefinierte Widgets (die nicht Gtk + sind) verwendet werden, die nicht für alles den GTK + - oder Symbolthemen folgen.

Dobey
quelle
Ich denke, ich muss einen Fehler gegen Ambiance einreichen, danke @dobey für den Zeiger!
David Planella