W niektórych programach ubuntu (panel sterowania ubuntu, ustawienia systemowe), ale nie np. W banshee, górna część okna zawiera elementy w ciemnym odcieniu (z motywem Ambience). Ale nie mogę znaleźć standardowego widgetu, który robi to automatycznie.
Czy te kolory są ustawione ręcznie (zamiast standardowego widgetu + motywu)? A jeśli są ustawione ręcznie, skąd pochodzą w motywie (jakie są parametry w gtk_widget_modify_bg (widget, GTK_STATE_NORMAL i kolor))?
EDYCJA: To nie wydaje się być prostym paskiem narzędzi Gtk. Jeśli uruchomię następujący kod:
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()
Dostaję takie okno: które nie ma ciemnego tonu dla paska narzędzi.
EDYCJA 2: Chociaż odpowiedź na „pasek narzędzi ze specjalnym kontekstem” autorstwa j-johan-edwards jest prawdziwa w większości programów, w panelu sterowania ubuntuone tak nie jest. Ten program ma GtkVBox, który może zawierać dowolny zakres widżetów (w przeciwieństwie do paska narzędzi). Nadal nie jestem w stanie ustalić, w jaki sposób motyw GTK wie, jak malować tę część okna.
Ale w każdym razie: na razie wystarczy mi pasek narzędzi ...
źródło
Gtk.get_major_version()
mówi3
, ale wciąż otrzymuję stary pasek narzędzi. Dzieje się tak pofrom gi.repository import Gtk
python2 i python3.W odniesieniu do drugiej części pytania, która brzmiała: „Jak dodać VBox do paska narzędzi”, wszystko co musisz zrobić, to owinąć go w Gtk.ToolItem, np .:
Możesz to uprościć, tworząc funkcję pomocnika lub rozszerzając Gtk.Toolbar, na przykład:
custom_toolbar.py
Po prostu sprawdza, czy obiekt, który próbujesz wstawić, jest narzędziem ToolItem, a jeśli nie, zawija go w sobie. Przykład użycia:
main.py
Powinno to tak wyglądać
źródło