Повторное открытие дочернего окна с сохранением старых данных
Написал родительское окно и дочернее, в родительском окне по нажатию клавиши открывается дочернее окно в нем есть поля ввода и кнопка сохранения, после нажатие кнопки сохранить ,хочу чтобы после повторного вызова дочернего окна поля ввода не стирались, не могу понять. Вот фрагмент функции вызова дочернего окна
def child():
def save():
window.withdraw()
btn_1['state'] = 'active'
window = Toplevel()
window.geometry('730x280')
btn_save = Button(window, text = "save",command=save)
btn_save .place(x=10,y=10)
text = Text(window)
text.place(x=10,y=30)
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Можно сразу после создания окна его скрывать (window.withdraw()), потом при необходимости показать окно - отображать его (child_window.deiconify()), а не создавать новый объект окна:
from tkinter import *
def child():
def save():
window.withdraw()
# btn_1['state'] = 'active'
window = Toplevel()
window.withdraw() # <- сразу скрыть окно после создания
window.wm_protocol("WM_DELETE_WINDOW", window.withdraw) # <- при закрытии окна через крестик скрывать его
window.geometry('730x280')
btn_save = Button(window, text = "save",command=save)
btn_save.pack()
text = Text(window)
text.pack()
return window # <- вернуть объект окна из функции
root = Tk()
child_window = child() # Сразу создается объект окна, но сначала не отображается
Button(
root,
text="Show window",
command=child_window.deiconify # <- при нажатии на кнопку отобразить окно
).pack()
root.mainloop()