Виджеты Tkinter не исчезают после передачи команды для другого виджета - PullRequest
0 голосов
/ 06 октября 2018

Мне нужно, чтобы предыдущий ярлык исчез или был уничтожен, как только будет передана команда для второго ярлыка (нажатием другой кнопки).Я не хочу, чтобы виджеты отставали, только чтобы за ними скрывался новый, мне нужно, чтобы они полностью исчезли.

from tkinter import *
root=Tk()
root.geometry('800x600+0+0')
f1=Frame(root, width=700, height=200, bg='green')
f1.pack()
f2=Frame(root, width=700, height=200, bg='yellow')
f2.pack()

def hello():
    l1=Label(f2,text='Hello button pressed', fg='red').pack()
def bye():
    l2=Label(f2,text='Secondly, Bye button pressed', fg='blue').pack()

b1=Button(f1, text='Hello', command=hello).pack()
b2=Button(f1, text='Bye', command=bye).pack()

1 Ответ

0 голосов
/ 06 октября 2018

В настоящее время нет никаких причин для исчезновения ярлыков, все, что делает ваш код, это упаковывает новый ярлык под последним.Вам лучше создать одну метку и изменить текст этой метки, используя метод .config().

from tkinter import *
root=Tk()
root.geometry('800x600+0+0')
f1=Frame(root, width=700, height=200, bg='green')
f1.pack()
f2=Frame(root, width=700, height=200, bg='yellow')
f2.pack()

# label to change
lbl = Label(f2, text='', fg='red')
lbl.pack()


def hello():
    global lbl
    # edit label text
    lbl.config(text='Hello button pressed', fg='red')


def bye():
    global lbl
    lbl.config(text='Secondly, Bye button pressed', fg='blue')


b1=Button(f1, text='Hello', command=hello).pack()
b2=Button(f1, text='Bye', command=bye).pack()

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...