@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()


Почему не удаляется? И тогда как удалить эту кнопку в функции?
  • Вопрос задан
  • 1371 просмотр
Решения вопроса 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()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час