¿Qué hace el método "wait_window"?

Parece que el objeto que llama a este métodoespera a que la ventana pasada como parámetro sea destruida antes de continuar con su propio ciclo...

De las cadenas de documentos de laMisc clase, podemos observar:

def wait_window(self, window=None):
    """Wait until a WIDGET is destroyed.
    If no parameter is given self is used."""

A primera vista, parece que este método puede hacer unToplevel modal, pero esto no es cierto. Hacer unToplevel modal, tenemos que usar elgrab_set() método.

He visto alrededor de otras explicaciones:

wait_window parece no volver hasta que el widget dado pasa como parámetro no se destruye.

De otro lugar:

wait_window(widget) - Crea un evento local que espera a que se destruya el widget dado. Este bucle no afecta el bucle principal de la aplicación.

Desde elefbot documentación, tenemos:

loswait_window ingresa un bucle de evento local y no regresa hasta que se destruye la ventana dada (ya sea a través del método de destrucción o explícitamente a través del administrador de ventanas):

widget.wait_window(window)

¿Qué significa exactamente para unwindow esperar awindow (sí mismo)?

Parece que el código que viene después de la llamada await_window no se ejecuta hasta que la ventana pasada al mismo método no se destruye. En el siguiente ejemplo de trabajo, podemos ver una prueba de lo que acaba de decir:

from tkinter import *

def on_win_request(parent):
    dialog = Toplevel()
    parent.wait_window(dialog)
    # executed only when "dialog" is destroyed
    print("Mini-event loop finished!")

r = Tk()
b = Button(r, text='New Window', command=lambda: on_win_request(r))
b.pack()
b2 = Button(r, text='Hello!', command=lambda: print("hello"))
b2.pack()
r.mainloop()

"Mini-event loop finished!" se imprimirá solo cuando el localToplevel widget llamadodialog Esta destruido.

Entonces, ¿en qué circunstancias reales debo usar este método?

Respuestas a la pregunta(1)

Su respuesta a la pregunta