2013/10/10 Dov Grobgeld <dov.grobg...@gmail.com>

> ​Here's what I ended up doing, with the help of Denis Linvinus:
>
> ​
> #!/usr/bin/python
>
> from gi.repository import Gtk
>
> mw = Gtk.Window()
>
> prov = Gtk.CssProvider()
>
> Gtk.StyleContext.add_provider_for_screen(mw.get_screen(),prov,Gtk.STYLE_PROVIDER_PRIORITY_USER)
> prov.load_from_data("""
> * {
>     font: Serif 30;
>     background-color: pink;
>
> }
> """)
>
> mw.connect('delete-event',Gtk.main_quit)
> mw.add(Gtk.Label('Hello Gtk %s!'%Gtk._version))
> mw.show_all()
> Gtk.main()
>
> Note that it is possible to run several prov.load_from_data() calls to
> interactively change the properties, e.g. based on some external event.
>
>
bad idea, you should use classes and *states* of widget
(active,prelight,focused)

please read documentation for GtkCssProvider at
https://developer.gnome.org/gtk3/stable/GtkCssProvider.html
https://developer.gnome.org/gtk3/stable/GtkStyleContext.html#gtkstylecontext-classes

also, have a look at  this video http://www.youtube.com/watch?v=gTYUn72Wjyk
it show power of css in gtk3


1) you may attach css class for special widget, for example if you will
have following application style

.my_custom_css_class {
background-color: #FF0000;
}

then you can attach this class on the fly
label.get_style_context().add_class("my_custom_css_class");

or remove it
label.get_style_context().remove_class("my_custom_css_class");

more over you may remove default class if you wish
button.get_style_context().remove_class("button");


2) if you will use your own widgets  then you can use your custom widget
name in css as selector
for example  i have custom class
public class VTToggleButton : Gtk.Button{
}

now i can use name VTToggleButton in css

VTToggleButton {
background-color: #FF0000;
}

so you can completely divide applications view from application sources.
i use such approach in my application https://github.com/linvinus/AltYo

custom css style stored as option in configuration file, so user can change
application theme by it self



> ​Regards,
> Dov
> ​
>
>
> On Thu, Oct 10, 2013 at 4:16 PM, Paul Davis <p...@linuxaudiosystems.com>wrote:
>
>>
>>
>>
>> On Thu, Oct 10, 2013 at 4:05 AM, Dov Grobgeld <dov.grobg...@gmail.com>wrote:
>>
>>> Hi,
>>>
>>> Has something changed with the setting of styles in Gtk3, or is there
>>> some environment setting that inhibits the setting of the style? Consider
>>> the following python program:
>>>
>>> #!/usr/bin/python
>>>
>>> from gi.repository import Gtk
>>>
>>> Gtk.rc_parse_string("""
>>> style "normal" {
>>>     font_name ="serif 30"
>>> }
>>> widget "*" style "normal"
>>> """)
>>>
>>
>> My impression was that GTK RC files were deprecated (and ignored) and
>> that all themeing/styling was done with CSS now. I may be wrong about that.
>> Note that it isn't trivial to do per-widget CSS stuff, apparently.
>>
>>
>
>
> _______________________________________________
> gtk-list mailing list
> gtk-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-list
>
>
_______________________________________________
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to