Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Как полностью удалить все виджеты из окна tkinter в python?

#python #python_3x #tkinter


Каким образом можно полностью удалить все виджеты которые присутствуют в окне tkinter
на примере данного кода:

from tkinter import *
tk = Tk()
tk.title('Разрушители')
main_lbl = Label(tk, text='Приветствую в "Разрушителях"', fg='red', font='Arial 20')
wellcome_lbl = Label(tk, text='Бродя по лесу ты наткнулся на своего первого противника - '
                              'ВОЛКА \n эти опасные твари никогда не отступают ,
так что В БОЙ!!!!!', 
                     fg='black', font='Arial 20')
next_btn=Button(tk, text='Далее', width=30, height=5, font=20)
def next1(event):
    pass
    #Как сделать что бы кнопка всё удаляла?
next_btn.bind(tk, next1)
main_lbl.pack()
wellcome_lbl.pack()
next_btn.pack()
tk.mainloop()

    


Ответы

Ответ 1



при помощи функции dectroy можно уничтожить объекты. Пример на вашем коде: from tkinter import * def next_1(): destroy_object = [welcome_lbl, main_lbl, next_btn] for object_name in destroy_object: object_name.destroy() tk = Tk() tk.title('Разрушители') main_lbl = Label(tk, text='Приветствую в "Разрушителях"', fg='red', font='Arial 20') welcome_lbl = Label(tk, text='Бродя по лесу ты наткнулся на своего первого противника - ВОЛКА' '\n эти опасные твари никогда не отступают, так что В БОЙ!!!!!', fg='black', font='Arial 20') next_btn = Button(tk, text='Далее', width=30, height=5, font=20, command=next_1) main_lbl.pack() welcome_lbl.pack() next_btn.pack() tk.mainloop() Так же если в дальнейшем будете пользоваться теми виджетами которые хотите "временно скрыть" можно вместо .pack() использовать.grid() и при помощи winfo.viewable() скрывать объекты и заново делать видимыми. Пример from tkinter import * def next_1(): destroy_object = [welcome_lbl, main_lbl] for object_name in destroy_object: if object_name.winfo_viewable(): object_name.grid_remove() else: object_name.grid() tk = Tk() tk.title('Разрушители') main_lbl = Label(tk, text='Приветствую в "Разрушителях"', fg='red', font='Arial 20') welcome_lbl = Label(tk, text='Бродя по лесу ты наткнулся на своего первого противника - ВОЛКА' '\n эти опасные твари никогда не отступают, так что В БОЙ!!!!!', fg='black', font='Arial 20') next_btn = Button(tk, text='Далее', width=30, height=5, font=20, command=next_1) main_lbl.grid() welcome_lbl.grid() next_btn.grid() tk.mainloop()

Комментариев нет:

Отправить комментарий