[英]Closing current window when opening a new window in tkinter python
[英]Closing a window and opening a new one via a button in Tkinter
我想知道是否有一種方法可以打開 Toplevel() 的新實例並通過按下按鈕關閉當前實例,即關閉當前窗口並打開一個新窗口。 這是有問題的代碼:
def start(self):
self.name = tk.DoubleVar()
name_w = tk.Toplevel(root)
name_w.wm_title("Enter name")
f1 = tk.Frame(name_w)
f1.pack()
L1 = tk.Label(f1, text="Please enter your name!")
L1.grid(row=0, column=0)
E1 = tk.Entry(f1, textvariable=self.name)
E1.grid(row=1, column=0)
N1 = tk.Button(f1, text="Next", command = self.Q1)
N1.grid(row=2, column=0)
在這種情況下,我希望調用 self.Q1,同時銷毀 name_w。 有沒有辦法做到這一點? 謝謝。
是的,這是可能的。 要關閉Toplevel
的實例,只需將其銷毀即可。 您需要保存對窗口的引用。 在你的情況下,我要么讓Q1
銷毀窗口,要么創建一個單獨的函數來調用Q1
然后銷毀窗口。 這一切都取決於Q1
的主要目的是什么。
例如:
def start(self):
...
self.new_window = name_w
...
def quit_window(self):
self.Q1()
self.new_window.destroy()
如果您有多個這些,您可能需要將窗口引用存儲在列表或字典中,但基本機制是相同的:使用.destroy()
銷毀窗口。
當然,這不是唯一的方法。 您可以使用 lambda 或functools.partial
以及一個接受要銷毀的窗口名稱的函數,或者您可以使用嵌套函數等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.