Stack Overflow на русском Asked on December 11, 2021
from tkinter.font import Font
f=Font(family='Monofur',size=32)
AttributeError: 'NoneType' object has no attribute 'call'
Я не понимаю,о каком объекте NoneType может идти речь,в IDLE
>>> Font
<class 'tkinter.font.Font'>
ввод класса Font возвращает обычный подкласс tkinter.font
На сайтах с примерами кода,где я был,аналогичные куски кода работают исправно
Посмотрим ошибку детально:
>>> from tkinter.font import Font
>>> f = Font(family='Monofur', size=32)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.8/tkinter/font.py", line 93, in __init__
tk.call("font", "create", self.name, *font)
AttributeError: 'NoneType' object has no attribute 'call'
tk
- это объект главного окна, который берется или из глобальной переменной модуля tkinter, или передается первым параметром при создании объекта Font
(см. исходники).
Из-за того что окно еще не создано, значение этой переменной равно None
, и при вызове метода call
от tk
возникает ошибка.
Нужно сначала создать объект Tk()
(главное окно), потом уже создавать шрифт:
from tkinter import Tk
from tkinter.font import Font
root = Tk()
f = Font(family='Monofur', size=32)
# или f = Font(root, family='Monofur', size=32)
Answered by insolor on December 11, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP