я хочу уничтожить окно и затем снова открыть его (tkinter) - PullRequest
0 голосов
/ 23 февраля 2020

Я хочу открыть окно из моего главного окна, а затем иметь возможность уничтожить и снова открыть исходное окно из окна, которое я создал

Вот мой код, но я просто получаю: tkinter.TclError : не может вызвать команду "wm": приложение было уничтожено

Любая помощь, чтобы исправить это будет высоко ценится:)

Вот мой код:

    from tkinter import*

    root = Tk()
    root.title("Using Frames")
    root.geometry("400x600")

    frame = LabelFrame(root, text="pages",
    padx=5,pady=5)
    frame.pack(padx=10,pady=10)
    def create_window():
        window1 = Tk()
        btn = Button(window1,text="destroy main page",command=root.destroy)
        btn.pack()
        btn2 = Button(window1,text="open main page",command=root.deiconify)
        btn2.pack()
        window1.mainloop()

    b1 = Button(frame,text="create window 2",command=create_window)
    b1.pack()
    root.mainloop()

1 Ответ

0 голосов
/ 23 февраля 2020

После того, как вы уничтожите это окно, вы не сможете открыть его снова, если не создадите новое окно.

Вы должны использовать .withdraw() и .deiconify(), чтобы скрыть или показать его.

Этот код может решить вашу проблему:

from tkinter import *

root = Tk()
root.title("Using Frames")
root.geometry("400x600")

frame = LabelFrame(root, text="pages",
                   padx=5, pady=5)
frame.pack(padx=10, pady=10)


def create_window():
    window1 = Toplevel()
    btn = Button(window1, text="destroy main page", command=root.withdraw)
    btn.pack()
    btn2 = Button(window1, text="open main page", command=root.deiconify)
    btn2.pack()
    window1.mainloop()


b1 = Button(frame, text="create window 2", command=create_window)
b1.pack()
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...