En algunos de los programas de ubuntu (panel de control de ubuntu, configuración del sistema), pero no, por ejemplo, en banshee, la parte superior de la ventana contiene elementos en tono oscuro (con el tema Ambience). Pero no puedo encontrar un widget estándar que haga esto automáticamente.
¿Todos estos colores están configurados a mano (en lugar de widget + tema estándar)? Y si se configuran a mano, ¿de dónde vienen en el tema (cuáles son los parámetros en gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, y color))?
EDITAR: No parece ser un simple Gtk.Toolbar. Si ejecuto el siguiente código:
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()
Me sale una ventana como esta: que no tiene un tono oscuro para la barra de herramientas.
EDIT2: Aunque la respuesta 'barra de herramientas con contexto especial' de j-johan-edwards es cierta en la mayoría de los programas, no es el caso en el panel de control de ubuntuone. Este programa tiene un GtkVBox que puede incluir cualquier rango de widgets (a diferencia de una barra de herramientas). Todavía no puedo determinar cómo el tema gtk sabe cómo pintar esa parte de la ventana.
Pero de todos modos: por ahora una barra de herramientas es suficiente para mí ...
fuente
Gtk.get_major_version()
dice3
, pero sigo obteniendo la barra de herramientas anterior. Esto es después de unfrom gi.repository import Gtk
tanto en python2 como en python3.Con respecto a la segunda parte de su pregunta, que era "Cómo agregar VBox a la barra de herramientas", todo lo que tiene que hacer es envolverlo dentro de un Gtk.ToolItem, por ejemplo :.
Puede simplificarlo creando una función auxiliar o extendiendo Gtk.Toolbar, por ejemplo:
custom_toolbar.py
Simplemente comprueba si el objeto que intenta insertar es un elemento de herramienta, y si no, lo envuelve dentro de uno. Ejemplo de uso:
main.py
Debe quedar como esta
fuente