Tkinter возвращает исключение AttributeError: 'NoneType' object has no attribute 'config'
Всем привет! Помогите разобраться почему возвращает исключение.
import tkinter as tk
FONT = ('Courier', 30)
root = tk.Tk()
root.title('Считалочка')
root.geometry('500x400+400+300')
number = tk.Label(root, text=int(0), font=FONT). grid(row=0, column=0)
btn_plus = tk.Button(root, text='+', font=FONT, width=10)
btn_plus.grid(row=1, column=0, columnspan=3, pady=20)
def click_plus():
a = 0
result = a + 1
number.config(text=result)
btn_plus.config(command=click_plus)
root.mainloop()
Не могу понять почему он ругается на конфиг.
Ответы (1 шт):
Автор решения: MarianD
→ Ссылка
Ваша проблема заключается в том, что в команде
number = tk.Label(root, text=int(0), font=FONT). grid(row=0, column=0)
метод .grid() возвращает None, значит, в переменной number будет None, а не вами созданный объект типа Label.
Потому ваше number.config(text=result) является попыткой применить метод .config() на объект None, т.е. на объект типа NoneType, как сообщает ваша ошибка.
Разделите вашу команду на две:
number = tk.Label(root, text=int(0), font=FONT)
number.grid(row=0, column=0)
Между прочим, у вас логическая ошибка в функции click_plus() - в переменной result будет всегда 1, потому что в переменной a есть всегда нуль.
Исправите её так, что вместо
а = 0
присоедините переменной a текущее значение:
a = number['text']