[Tutor] Weird tkFont behavior
Steve Willoughby
steve at alchemy.com
Thu Jun 16 18:52:21 CEST 2011
I'm probably just doing something stupid, but I can't spot the error. I
hope someone here can see what I'm looking past, or knows of a known
issue with these widgets.
I'm writing a GUI app using ttk widgets in Tkinter, which includes text
displayed in a regular text widget. Some text in the widget will be in
Italics, some bold, some both, some regular. I assigned those font
effects as tags for the text widget as you can see in the code below.
However, when I run it, about 10% of the time, the text widget will come
up with random fonts (e.g., bold italic instead of plain roman), even
though I confirmed that it's using 'rm' as the tag when inserting the
text into the widget.
The initial setup code includes:
f = Tkinter.Text(self, ...)
f.tag_config('rm', font=tkFont.Font(family='Helvetica', size=10,
weight=tkFont.NORMAL, slant-tkFont.ROMAN))
f.tag_config('bf', font=tkFont.Font(family="Helvetica', size=10,
weight=tkFont.BOLD, slant=tkFont.ROMAN))
f.tag_config('it', font=tkFont.Font(family="Helvetica', size=10,
weight=tkFont.NORMAL, slant=tkFont.ITALIC))
f.tag_config('bi', font=tkFont.Font(family="Helvetica', size=10,
weight=tkFont.BOLD, slant=tkFont.ITALIC))
f.tag_config('ref', font=tkFont.Font(family="Helvetica', size=10,
weight=tkFont.NORMAL, slant=tkFont.ITALIC), foreground='blue',
underline=True)
text is inserted simply by:
f.insert(END, text, 'rm')
and yet some of the time, even though the 'rm' tag is there, I get one
of the other fonts I configured for the other tags. Do I need to keep
other references to the tkFont objects somewhere else or something?
--
Steve Willoughby / steve at alchemy.com
"A ship in harbor is safe, but that is not what ships are built for."
PGP Fingerprint 4615 3CCE 0F29 AE6C 8FF4 CA01 73FE 997A 765D 696C
More information about the Tutor
mailing list