css - How to change the background-color of a Gtk.InfoBar to yellow? -
the default background color seems blue (from adwaita theme), if set type of message warning. preffer using css.
example.py:
# coding=utf-8 import gi gi.require_version("gtk", "3.0") gi.repository import gtk w = gtk.window() ib = gtk.infobar() w.add(ib) w.connect("delete-event", gtk.main_quit) provider = gtk.cssprovider() provider.load_from_path("style.css") w.get_style_context()\ .add_provider(provider, gtk.style_provider_priority_user) w.show_all() gtk.main() style.css:
infobar { background-color: yellow; } screenshot:
i use python 2.7.13 , gtk+ 3.22 on windows 10 updates installed , through msys2 updates installed pacman -syyu.
from python gtk api:
gtk.infobar has single css node name infobar. node may 1 of style classes .info, .warning, .error or .question, depending on message type.
by default, gtk.infobar message type gtk.messagetype.info , style.css file should be, eg.:
infobar.info { background-color: yellow; } this way can more specific message type setting infobar work. advantage can have custom settings each message type using infobar.<messagetype>.
edit:
change widget receive css class gtk.infobar instance:
ib.get_style_context()\ .add_provider(provider, gtk.style_provider_priority_user) edit 2:
to add cssprovider (styleprovider) whole application have gdk.screen class method gdk.screen.add_provider_for_screen (more info here)
changing code reflect these changes, you'll have:
# coding=utf-8 import gi gi.require_version("gtk", "3.0") gi.repository import gtk, gdk w = gtk.window() ib = gtk.infobar() w.add(ib) w.connect("delete-event", gtk.main_quit) provider = gtk.cssprovider() provider.load_from_path("style.css") gtk.stylecontext.add_provider_for_screen(gdk.screen.get_default (), provider, gtk.style_provider_priority_application) w.show_all() gtk.main() wiki

Comments
Post a Comment