O que o método "wait_window" faz?

Parece que o objeto que chama esse métodoaguarda que a janela passada como parâmetro seja destruída antes de continuar com seu próprio loop...

Das seqüências de documentos doMisc classe, podemos observar:

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

À primeira vista, parece que esse método pode fazer umaToplevel modal, mas isso não é verdade. Fazer umToplevel modal, temos que usar ograb_set() método.

Eu tenho visto em torno de outras explicações:

wait_window parece não retornar até que o widget fornecido seja transmitido como parâmetro não é destruído.

De outro local:

wait_window(widget) - Cria um evento local que aguarda a destruição do widget especificado. Esse loop não afeta o loop principal do aplicativo.

Deeffbot documentação, temos:

owait_window entra em um loop de evento local e não retorna até que a janela especificada seja destruída (pelo método destroy ou explicitamente pelo gerenciador de janelas):

widget.wait_window(window)

O que exatamente significa para umwindow esperar porwindow (em si)?

Parece que o código que vem após a chamada parawait_window não é executado até que a janela passada para o mesmo método não seja destruída. No exemplo de trabalho a seguir, podemos ver uma prova do que acabamos de dizer:

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!" será impresso somente quando o localToplevel widget chamadodialog está destruído.

Então, exatamente em que circunstâncias reais devo usar esse método?

questionAnswers(1)

yourAnswerToTheQuestion