In einigen Ubuntu-Programmen (Ubuntu-Systemsteuerung, Systemeinstellungen), aber nicht z. B. in Banshee, enthält der obere Teil des Fensters Elemente in dunklem Ton (mit dem Ambience-Thema). Aber ich kann kein Standard-Widget finden, das dies automatisch erledigt.
Sind diese Farben alle von Hand eingestellt (anstelle von Standard-Widget + Thema)? Und wenn sie von Hand festgelegt wurden, woher kommen sie im Design (welche Parameter enthält gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, & color))?
EDIT: Es scheint keine einfache Gtk.Toolbar zu sein. Wenn ich folgenden Code ausführe:
from gi.repository import Gtk
window = Gtk.Window()
window.set_default_size(200, -1)
window.connect("destroy", lambda q: Gtk.main_quit())
toolbar = Gtk.Toolbar()
window.add(toolbar)
toolbutton = Gtk.ToolButton(stock_id=Gtk.STOCK_NEW)
toolbar.add(toolbutton)
window.show_all()
Gtk.main()
Ich bekomme ein Fenster wie dieses: das keinen dunklen Ton für die Symbolleiste hat.
EDIT2: Obwohl die Antwort 'Symbolleiste mit speziellem Kontext' von j-johan-edwards in den meisten Programmen zutrifft, ist dies in der Ubuntuone-Systemsteuerung nicht der Fall. Dieses Programm verfügt über eine GtkVBox, die (anders als eine Symbolleiste) eine Reihe von Widgets enthalten kann. Ich kann immer noch nicht feststellen, wie das GTK-Theme diesen Teil des Fensters malen kann.
Aber trotzdem: vorerst reicht mir eine Symbolleiste ...
quelle
Gtk.get_major_version()
sagt3
, aber ich bekomme immer noch die alte Symbolleiste. Dies ist nach afrom gi.repository import Gtk
in python2 und python3.In Bezug auf den zweiten Teil Ihrer Frage, nämlich "So fügen Sie VBox zur Symbolleiste hinzu", müssen Sie ihn nur in ein Gtk.ToolItem einbinden, z.
Sie können es einfacher machen, indem Sie eine Hilfsfunktion erstellen oder die Gtk.Toolbar erweitern, zum Beispiel:
custom_toolbar.py
Es wird lediglich geprüft, ob das Objekt, das Sie einfügen möchten, ein ToolItem ist. Andernfalls wird es in ein ToolItem eingeschlossen. Anwendungsbeispiel:
main.py
Es sollte wie folgt aussehen diese
quelle