在Tkinter中,可以使用wait_window
方法来等待TopLevel窗口的结果。
首先,创建一个TopLevel窗口,并设置它的result
属性为一个共享的变量,用于存储窗口的结果。然后,在需要等待窗口结果的地方,调用wait_window
方法,将TopLevel窗口作为参数传入。这会导致程序暂停执行,直到该窗口被关闭。
以下是一个示例代码:
import tkinter as tk
def open_dialog():
dialog = tk.Toplevel()
dialog.title("Dialog")
result = tk.StringVar()
def on_ok():
result.set("OK")
dialog.destroy()
def on_cancel():
result.set("Cancel")
dialog.destroy()
ok_button = tk.Button(dialog, text="OK", command=on_ok)
ok_button.pack()
cancel_button = tk.Button(dialog, text="Cancel", command=on_cancel)
cancel_button.pack()
dialog.result = result # 设置窗口的结果属性
root = tk.Tk()
open_dialog_button = tk.Button(root, text="Open Dialog", command=open_dialog)
open_dialog_button.pack()
root.mainloop()
# 在这里等待TopLevel窗口的结果
print("Dialog result:", open_dialog_button.result.get())
在上面的示例中,当点击"OK"或"Cancel"按钮时,窗口会被关闭,并将结果存储在open_dialog_button.result
中。在最后的打印语句中,可以获取到窗口的结果并进行处理。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行适当的修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云