[Tkinter-discuss] ttk style dilema
Guilherme Polo
ggpolo at gmail.com
Mon Apr 27 22:35:59 CEST 2009
On Mon, Apr 27, 2009 at 12:15 PM, Sorin Schwimmer <sxn02 at yahoo.com> wrote:
>
> Hi All,
>
> I installed recently tcl/tk 8.5.6, Python 2.6.2 and pyttk 0.3 on a Linux (Gentoo) machine.
>
Hi Sorin, thanks for giving ttk a try.
> I would like to be able to change two things in entries:
> - the font should be the default, but in italics
> - selected text in an entry should have white background and gray foreground
>
> How can I accomplish that? How can I determine what is the actual TkDefaultFont?
>
I will answer in the reverse order.
The easier way to know what defines the actual TkDefaultFont is to use
the tkFont module (it is included with tkinter):
import Tkinter
import tkFont
Tkinter.Tk()
print tkFont.Font(font='TkDefaultFont').configure()
Now, to change the selection colors in a ttk.Entry, simply do:
import ttk
style = ttk.Style()
style.map('TEntry', selectbackground=[('!disabled', 'white')],
selectforeground=[('!disabled', 'grey')])
And to change the ttk.Entry font to italics you don't use themes
actually. There is an option named 'font' for this widget, so you just
have to change it. Follows the correct way to do what you are after:
import ttk
import tkFont
entry = ttk.Entry()
myfont = tkFont.Font(font=str(entry['font']))
myfont['slant'] = 'italic'
entry['font'] = myfont
entry.pack()
> Thanks
> SxN
Regards,
--
-- Guilherme H. Polo Goncalves
More information about the Tkinter-discuss
mailing list