Re: [pygtk] changing the foreground colour of entry box dynamically
On Thu, 2009-04-09 at 07:00 -0500, Laszlo Pandy wrote: > The documentation shows that there are five states for a widget[1]. > > For each state, the GTK theme defines different colours for > background, foreground etc. > You can see some discussion about colours on John Stowers blog[2]. He > has a good screenshot showing the different colours for each state[3], > which makes it easier to find which colour you want to change. Hi, The code for the little tool to inspect theme colors is now available from http://gist.github.com/49799 The blog post [2] has also been updated accordingly. John > > You can directly modify the bg, fg, text, and base colours using the > widget.modify_* functions. For example: > > mywidget.modify_bg(gtk.STATE_NORMAL, mycolor) > # if you have a widget which changes appears when > # selected you might have to change the other states as well. > mywidget.modify_bg(gtk.STATE_SELECTED, mycolor) > > Here is what I found about the theme guidelines for different colours[4]: > # fg - Sets the foreground color of a widget. > # bg - Sets the background color of a widget. > # text - Sets the foreground color for widgets that have editable text. > # base - Sets the background color for widgets that have editable text. > > I only have experience changing the colours for my own custom widgets > which do not to have states like prelight or selected. Let me know if > this works. > > Laszlo > > [1] > http://www.pygtk.org/docs/pygtk/gtk-constants.html#gtk-state-type-constants > [2] > http://www.johnstowers.co.nz/blog/index.php/2008/07/31/conduit-ui-experiments/ > [3] > http://www.johnstowers.co.nz/blog/wp-content/uploads/2008/07/theme-swatch.png > [4] http://orford.org/gtk/ > > On Thu, Apr 9, 2009 at 2:16 AM, Alessandro Dentella wrote: > > On Thu, Apr 09, 2009 at 10:36:18AM +1200, Tim Evans wrote: > >> Tim Evans wrote: > >> > ganesh gajare wrote: > >> >> Hello, > >> >> I have created an entry box widget using glade. > >> >> and I am doing validation on that field... > >> >> So whenever an invalid text is entered in the entry box,the text color > >> >> of entry should change dynamically.. > >> > > >> > I haven't tested this, but the method 'modify_text' should do what you > >> > need. For example, to set the text to red, use: > >> > > >> > entry.modify_text(gtk.gdk.color_parse('red')) > >> > > >> > and to set it back to the default black: > >> > > >> > entry.modify_text(None) > >> > > >> > >> Well, that's what I get for not even checking the documentation before > >> posting. I forgot the first argument to 'modify_text' should be a state > >> value. The relevant states here are: > >> > >> - gtk.STATE_NORMAL for unselected text > >> - gtk.STATE_SELECTED for selected text when the entry is focused > >> - gtk.STATE_ACTIVE for selected text when a different widget is focused > > > > > > In case you need to change the background too, i tryed to use modify_bg with > > no luck while modify_base just works. I have not understood which is the > > difference between one and the other, not I could find an explanation > > of the difference between modify_bg and modify_text. The second works to > > modify the text of an entry, the first does not. > > > > Any one can explain or pint to documentaion on the difference between > > base/bg and text/fg? > > > > In the kiwi package there is an interesting validation field that uses also > > images as background. I wanted to do the same but didn't manage missing a > > simpler example... > > > > sandro > > ___ > > pygtk mailing list pygtk@daa.com.au > > http://www.daa.com.au/mailman/listinfo/pygtk > > Read the PyGTK FAQ: http://faq.pygtk.org/ > > > ___ > pygtk mailing list pygtk@daa.com.au > http://www.daa.com.au/mailman/listinfo/pygtk > Read the PyGTK FAQ: http://faq.pygtk.org/ ___ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
Re: [pygtk] changing the foreground colour of entry box dynamically
The documentation shows that there are five states for a widget[1]. For each state, the GTK theme defines different colours for background, foreground etc. You can see some discussion about colours on John Stowers blog[2]. He has a good screenshot showing the different colours for each state[3], which makes it easier to find which colour you want to change. You can directly modify the bg, fg, text, and base colours using the widget.modify_* functions. For example: mywidget.modify_bg(gtk.STATE_NORMAL, mycolor) # if you have a widget which changes appears when # selected you might have to change the other states as well. mywidget.modify_bg(gtk.STATE_SELECTED, mycolor) Here is what I found about the theme guidelines for different colours[4]: # fg - Sets the foreground color of a widget. # bg - Sets the background color of a widget. # text - Sets the foreground color for widgets that have editable text. # base - Sets the background color for widgets that have editable text. I only have experience changing the colours for my own custom widgets which do not to have states like prelight or selected. Let me know if this works. Laszlo [1] http://www.pygtk.org/docs/pygtk/gtk-constants.html#gtk-state-type-constants [2] http://www.johnstowers.co.nz/blog/index.php/2008/07/31/conduit-ui-experiments/ [3] http://www.johnstowers.co.nz/blog/wp-content/uploads/2008/07/theme-swatch.png [4] http://orford.org/gtk/ On Thu, Apr 9, 2009 at 2:16 AM, Alessandro Dentella wrote: > On Thu, Apr 09, 2009 at 10:36:18AM +1200, Tim Evans wrote: >> Tim Evans wrote: >> > ganesh gajare wrote: >> >> Hello, >> >> I have created an entry box widget using glade. >> >> and I am doing validation on that field... >> >> So whenever an invalid text is entered in the entry box,the text color >> >> of entry should change dynamically.. >> > >> > I haven't tested this, but the method 'modify_text' should do what you >> > need. For example, to set the text to red, use: >> > >> > entry.modify_text(gtk.gdk.color_parse('red')) >> > >> > and to set it back to the default black: >> > >> > entry.modify_text(None) >> > >> >> Well, that's what I get for not even checking the documentation before >> posting. I forgot the first argument to 'modify_text' should be a state >> value. The relevant states here are: >> >> - gtk.STATE_NORMAL for unselected text >> - gtk.STATE_SELECTED for selected text when the entry is focused >> - gtk.STATE_ACTIVE for selected text when a different widget is focused > > > In case you need to change the background too, i tryed to use modify_bg with > no luck while modify_base just works. I have not understood which is the > difference between one and the other, not I could find an explanation > of the difference between modify_bg and modify_text. The second works to > modify the text of an entry, the first does not. > > Any one can explain or pint to documentaion on the difference between > base/bg and text/fg? > > In the kiwi package there is an interesting validation field that uses also > images as background. I wanted to do the same but didn't manage missing a > simpler example... > > sandro > ___ > pygtk mailing list pygtk@daa.com.au > http://www.daa.com.au/mailman/listinfo/pygtk > Read the PyGTK FAQ: http://faq.pygtk.org/ > ___ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
Re: [pygtk] changing the foreground colour of entry box dynamically
On Thu, Apr 09, 2009 at 10:36:18AM +1200, Tim Evans wrote: > Tim Evans wrote: > > ganesh gajare wrote: > >> Hello, > >> I have created an entry box widget using glade. > >> and I am doing validation on that field... > >> So whenever an invalid text is entered in the entry box,the text color > >> of entry should change dynamically.. > > > > I haven't tested this, but the method 'modify_text' should do what you > > need. For example, to set the text to red, use: > > > > entry.modify_text(gtk.gdk.color_parse('red')) > > > > and to set it back to the default black: > > > > entry.modify_text(None) > > > > Well, that's what I get for not even checking the documentation before > posting. I forgot the first argument to 'modify_text' should be a state > value. The relevant states here are: > > - gtk.STATE_NORMAL for unselected text > - gtk.STATE_SELECTED for selected text when the entry is focused > - gtk.STATE_ACTIVE for selected text when a different widget is focused In case you need to change the background too, i tryed to use modify_bg with no luck while modify_base just works. I have not understood which is the difference between one and the other, not I could find an explanation of the difference between modify_bg and modify_text. The second works to modify the text of an entry, the first does not. Any one can explain or pint to documentaion on the difference between base/bg and text/fg? In the kiwi package there is an interesting validation field that uses also images as background. I wanted to do the same but didn't manage missing a simpler example... sandro ___ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
Re: [pygtk] changing the foreground colour of entry box dynamically
Tim Evans wrote: > ganesh gajare wrote: >> Hello, >> I have created an entry box widget using glade. >> and I am doing validation on that field... >> So whenever an invalid text is entered in the entry box,the text color >> of entry should change dynamically.. > > I haven't tested this, but the method 'modify_text' should do what you > need. For example, to set the text to red, use: > > entry.modify_text(gtk.gdk.color_parse('red')) > > and to set it back to the default black: > > entry.modify_text(None) > Well, that's what I get for not even checking the documentation before posting. I forgot the first argument to 'modify_text' should be a state value. The relevant states here are: - gtk.STATE_NORMAL for unselected text - gtk.STATE_SELECTED for selected text when the entry is focused - gtk.STATE_ACTIVE for selected text when a different widget is focused -- Tim Evans Applied Research Associates NZ http://www.aranz.com/ ___ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
Re: [pygtk] changing the foreground colour of entry box dynamically
ganesh gajare wrote: > Hello, > I have created an entry box widget using glade. > and I am doing validation on that field... > So whenever an invalid text is entered in the entry box,the text color > of entry should change dynamically.. I haven't tested this, but the method 'modify_text' should do what you need. For example, to set the text to red, use: entry.modify_text(gtk.gdk.color_parse('red')) and to set it back to the default black: entry.modify_text(None) -- Tim Evans Applied Research Associates NZ http://www.aranz.com/ ___ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
Re: [pygtk] changing the foreground colour of entry box dynamically
Hi, Take a look at Kiwi's entry widget - it makes that stuff easy. The Kiwi page is here: http://async.com.br/projects/kiwi/ The docs for the entry widget is here: http://async.com.br/projects/kiwi/api/kiwi.ui.widgets.entry.ProxyEntry.html Hope this helps. On Wed, 2009-04-08 at 11:45 +0530, ganesh gajare wrote: > Hello, > I have created an entry box widget using glade. > and I am doing validation on that field... > So whenever an invalid text is entered in the entry box,the text > color of entry should change dynamically.. > > > please help me for this. > > > > Regards, > Ginovation > > > > ___ > pygtk mailing list pygtk@daa.com.au > http://www.daa.com.au/mailman/listinfo/pygtk > Read the PyGTK FAQ: http://faq.pygtk.org/ ___ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
[pygtk] changing the foreground colour of entry box dynamically
Hello, I have created an entry box widget using glade. and I am doing validation on that field... So whenever an invalid text is entered in the entry box,the text color of entry should change dynamically.. please help me for this. Regards, Ginovation ___ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/