[Tkinter-discuss] Text widget, fonts,
on OS X: questions and thoughts
jepler at unpythonic.net
Tue Mar 30 08:02:12 EST 2004
As noted in another post, you should probably be able to use
where t is your text widget and font_specifier names your font.
It may be the syntax you're using to describe the font that is wrong.
"-family system -size 10" looks like the value for a "font configure" or
"font create" command. Please read the manpage for font(n) down at FONT
DESCRIPTION. Syntax 3 is probably the one you want:
 family ?size? ?style? ?style ...?
A properly formed list whose first element is the desired font
family and whose optional second element is the desired size.
The interpretation of the size attribute follows the same rules
described for -size in FONT OPTIONS below. Any additional
optional arguments following the size are font styles. Possible
values for the style arguments are as follows:
normal bold roman italic
In this case, you should try
t.tag_configure("mytag", font=("system", 12))
I just tried the following in an interactive session, and it seemed to work:
>>> import Tkinter
>>> t = Tkinter.Text()
>>> t.insert("end", "xyzzy", "mytag")
>>> t.tag_configure("mytag", font=("courier", 36))
If combining a font size with the font name "system" doesn't work,
maybe it's because "system" is one of the special macintosh fonts listed
at the end under PLATFORM-SPECIFIC ISSUES, so font=("system", 12) is not
an example of font naming style 3, but style 2 (system font) with extra
junk at the end. I'm not sure what to do in this case, but it probably
involves using the tkFont module to find the details of the "system"
font, then creating a new font with the same details.
>>> t.tk.split(t.tk.call("font", "actual", "fixed"))
('-family', 'fixed', '-size', '12', '-weight', 'normal', '-slant',
'roman', '-underline', '0', '-overstrike', '0')
More information about the Tkinter-discuss