在Python Tkinter中创建模态对话框需要wait_window()吗?

前端之家收集整理的这篇文章主要介绍了在Python Tkinter中创建模态对话框需要wait_window()吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试使用 Python Tkinter创建一个模态对话框.我发现使用和不使用wait_window()之间没有区别.
import tkinter as tk

def button_click():
  dlg = tk.Toplevel(master=window)

  tk.Button(dlg,text="Dismiss",command=dlg.destroy).pack()

  dlg.transient(window)    # only one window in the task bar
  dlg.grab_set()           # modal
  #window.wait_window(dlg) # why?

window = tk.Tk()

tk.Button(window,text="Click Me",command=button_click).pack()

window.mainloop()

我已经看到了一些使用wait_window()来创建模态对话框的例子.所以我不确定是否需要该函数来创建模态对话框.

我正在使用Python 3.5.

解决方法

严格来说,不,不需要wait_window()来创建模态对话框.对话模态的作用是你放在窗口上的抓取.

但是,通常,一旦窗口被破坏,您可能需要运行一些其他代码.您可以使用wait_window()来实现此目的,因为它会在继续之前等待窗口被销毁.然后,您可以在此之后获得代码,例如return语句或一些清理代码.在你的情况下,没有什么可做的,所以你不需要调用wait_window.

猜你在找的Python相关文章