Кнопка не удаляется

Код:

from tkinter import*

def b():
    global c
    global a
    a.destroy()
def c():
    global b
    a=Button(text='ddd', command=b).grid()
c()
mainloop()

Почему не удаляется? И тогда как удалить эту кнопку в функции?


Ответы (1 шт):

Автор решения: insolor

В переменную a у вас записывается не объект Button, а результат вызов метода grid, а т.к. этот метод ничего не возвращает, то записывается None. Нужно разделить запись объекта в переменную и размещение с помощью grid на отдельные строки. Также нужно переменную a объявить глобальной в функции c, чтобы она была доступна из функции b:

from tkinter import *


def b():
    a.destroy()


def c():
    global a
    a = Button(text='ddd', command=b)
    a.grid()


c()
mainloop()
→ Ссылка