@NightCAT_Busya
pycatdranigbus

Не удаляется кнопка в tkinter python. Что делать?

Код:
from tkinter import*

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


Почему не удаляется? И тогда как удалить эту кнопку в функции?
  • Вопрос задан
  • 1135 просмотров
Решения вопроса 1
@o5a
Не надо никаких глобалов. В данном случае можно вообще обойтись без промежуточной функции, просто привязать метод самой кнопки
from tkinter import*

def c():
    a = Button(text='ddd')
    a.grid()
    a.config(command=a.destroy)

c()
mainloop()


Если все же нужна доп. функция (например доп. функционал), то передавать аргументы можно используя lambda/partial
from tkinter import*

def destroy_widget(widget):
    widget.destroy()

def c():
    a = Button(text='ddd')
    a.grid()
    a.config(command=lambda:destroy_widget(a))

c()
mainloop()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы