Toolbar GTK+ 3
25 September 2012 · #c++, #gtk3, #pythonSi vous créez des toolbars avec GTK+ 3 elle ne suivra pas le style des autres applications et ne s'affichera pas avec le fond cool peu plus sombre que le reste de la fenêtre.
La solution consiste à indiquer au programme la toolbar principale et GTK+ 3 s'occupera de tout.
Vous pouvez ajouter ces lignes dans la description de la toolbar directement
dans le fichier .glade dans le noeud <object class="GtkToolbar"/> :
<class name="primary-toolbar"/>
UPDATE : Il est désormais possible d'indiquer la classe primary-toolbar depuis Glade.
Il y a aussi la classe "inline-toolbar" qui est utile si vous voulez mettre votre toolbar au milieu de la fenêtre.
Python
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)
Exemple :
from gi.repository import Gtk
class CoolToolbar:
def __init__(self):
self.win = Gtk.Builder()
self.win.add_from_file("toolbar.glade")
self.toolbar = self.win.get_object("toolbar")
self.toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)
self.win.connect_signals(self)
def quit(self, widget):
Gtk.main_quit()
if __name__ == "__main__":
CoolToolbar()
Gtk.main()
C++
m_toolbar->get_style_context()->add_class(GTK_STYLE_CLASS_PRIMARY_TOOLBAR);
#include <gtkmm.h>
int main (int argc, char *argv[])
{
Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv, "org.gtkmm.toolbar");
Gtk::Window main;
Gtk::Toolbar* m_toolbar;
Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file("toolbar.glade");
builder->get_widget("toolbar", m_toolbar);
m_toolbar->get_style_context()->add_class(GTK_STYLE_CLASS_PRIMARY_TOOLBAR);
return app->run(main);
}