Problem With Tkinter Font
Wildman
best_lay at yahoo.com
Sun Feb 26 10:35:54 EST 2017
On Sun, 26 Feb 2017 09:17:00 +0100, Peter Otten wrote:
> Wildman via Python-list wrote:
>
>> Python 3.4.2
>> Tkinter 8.6
>> Linux
>>
>> I want to set the font in a GUI program I am working on.
>> Here is the pertinent code I am using...
>>
>> from tkinter import font
>>
>> myfont = font.Font(family='Helvetica', size=10, weight='bold')
>>
>> Here is the error I get...
>>
>> Traceback (most recent call last):
>> File "./test.py", line 41, in <module>
>> myfont = font.Font(family='Helvetica', size=10, weight="bold")
>> File "/usr/lib/python3.4/tkinter/font.py", line 93, in __init__
>> tk.call("font", "create", self.name, *font)
>> AttributeError: 'NoneType' object has no attribute 'call'
>>
>> From my research, the syntax is correct but I am having
>> doubts. Can anyone clarify?
>
> If you do not provide the root argument there is still an implicit
> dependency:
>
> """
> class Font:
> ...
> def __init__(self, root=None, font=None, name=None, exists=False,
> **options):
> if not root:
> root = tkinter._default_root
> tk = getattr(root, 'tk', root)
>
> """
>
>>>> import tkinter
>>>> from tkinter import font
>>>> font.Font(family="Helpvetica", size=10, weight="bold")
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "/usr/lib/python3.4/tkinter/font.py", line 93, in __init__
> tk.call("font", "create", self.name, *font)
> AttributeError: 'NoneType' object has no attribute 'call'
>>>> root = tkinter.Tk()
>>>> font.Font(family="Helpvetica", size=10, weight="bold")
> <tkinter.font.Font object at 0x7fb9fdfdb6d8>
>
> So you have to create the main window before you can create a Font.
OK, that makes sense. I knew I was doing something dumb
or in this case, not doing it. Thank you.
--
<Wildman> GNU/Linux user #557453
The cow died so I don't need your bull!
More information about the Python-list
mailing list