У меня есть строка меню, которая имеет 2 варианта
[1] ДОБАВИТЬ ДАННЫЕ
[2] ОБНОВЛЕНИЕ ДАННЫХ
Когда я выбираю опцию, виджеты загружаются в окно. Когда я выбираю другой вариант после этого, предыдущие виджеты остаются, а новые виджеты перекрываются. Как мне сохранить окно и уничтожить существующие виджеты над ним. Я не прикрепил исходный код к другим параметрам меню из-за его размера, однако фрагмент кода повторяет реальный сценарий.
Я пытался destroy () exit () и вызов функции снова
from tkinter import *
root = None
data = None
def _add(dt):
global data
data = dt
print(data, 'ADDED')
def _edit(new_dt):
global data
data = new_dt
print('UPDATED')
print("DATA =", data)
def cust_add():
global root
global data
lbl = Label(root,text="ADD NAME:")
ent = Entry(root)
btn = Button(root, text='ADD', command=lambda: _add(ent.get()))
lbl.pack()
ent.pack()
btn.pack()
def cust_edit():
global root
global data
lbl = Label(root, text="UPDATE NAME:")
ent = Entry(root)
btn = Button(root, text="UPDATE", command=lambda: _edit(ent.get()))
lbl.pack()
ent.pack()
btn.pack()
def homepage():
global root
root = Tk()
root.geometry('300x400')
root.title('CAR FLEET MANAGEMENT SYSTEM')
back_image = PhotoImage(file='icons/background3.png')
back_label = Label(root, image=back_image)
back_label.place(x=0, y=0, relwidth=1, relheight=1)
menus = Menu()
cst = Menu(menus, tearoff=FALSE)
cst.add_command(label="Add New Customer", command=cust_add)
cst.add_command(label="Change Customer Details", command=cust_edit)
menus.add_cascade(label='CUSTOMERS', menu=cst)
root.config(menu=menus)
root.mainloop()
homepage()