[pygtk] Color a ToggleButton
John Finlay
finlay at moeraki.com
Sun Sep 6 10:41:15 WST 2009
E.R. Uber wrote:
> After reading PyGTK FAQ 4.6
> at http://faq.pygtk.org/index.py?req=show&file=faq04.006.htp
> <http://faq.pygtk.org/index.py?req=show&file=faq04.006.htp> I thought
> perhaps I could change the color of a ToggleButton by copying its
> style, updating the style, and setting the style. This did not work.
>
> Then reading PyGTK FAQ 4.16
> at http://faq.pygtk.org/index.py?req=show&file=faq04.016.htp
> <http://faq.pygtk.org/index.py?req=show&file=faq04.016.htp> it
> mentions that gtk.Button (and I assume gtk.ToggleButton) are
> windowless widgets that do not allow changing their background and
> base color unless you insert them into an EventBox.
>
> Using a parent EventBox succeeds in changing the color of the event
> box, but not the child ToggleButton, the button just appears to be
> surrounded by the color change of the event box. I tried the same with
> a Button and it works the same way.
>
> I am using pygtk 2.12.1, gtk 2.16.4, glade 3.6.7, and python 2.6 on
> both windows and fedora core 9. I have only tried this to date on
> windows though.
You don't need the EventBox just use toggle.modify_bg() with the
appropriate state and color. Note in your example you need to set
STATE_NORMAL and STATE_ACTIVE to have different colors for the active
and inactive states.
John
More information about the pygtk
mailing list