Come mettere in pausa, mentre Python finestra Tkinter è aperta?
-
30-09-2019 - |
Domanda
Sto scrivendo un programma che a volte si verifica un errore. Quando lo fa, si apre una finestra di dialogo che chiede all'utente Tkinter se continuare. Si tratta di una versione più complicata di questo:
keep_going = False
KeepGoingPrompt(keep_going)
if not keep_going:
return
I set di prompt keep_going
a True
o foglie è False
.
Il problema è che il codice sembra continuare mentre KeepGoingPrompt
è aperto. Ho provato memorizzare un riferimento al prompt
e aggiungendo un ciclo come
while prompt:
time.sleep(1)
ma pitone si blocca nel ciclo e si blocca. C'è un modo migliore per farlo?
Grazie
Soluzione
È possibile utilizzare la classe tkMessageBox ad apparire una finestra di domanda che è modale e non tornerà fino a quando l'utente fa clic su un pulsante. Vedere il Tkinter libro per i dettagli.
Altri suggerimenti
1) sono in esecuzione il codice all'interno IDLE? Potrebbe essere responsabile per rendere il dialogo non bloccante, mentre in realtà dovrebbe essere bloccando.
2) Se in esecuzione esterna libera non aiuta, cercare le opzioni tkinter / dialogo che specificano se il comportamento sta bloccando o non bloccante