Comment faire une pause Python alors que la fenêtre Tkinter est ouverte?
-
30-09-2019 - |
Question
J'écris un programme qui rencontre parfois une erreur. Quand il le fait, il apparaît une boîte de dialogue Tkinter demandant à l'utilisateur de poursuivre ou non. Il est une version plus compliquée de ceci:
keep_going = False
KeepGoingPrompt(keep_going)
if not keep_going:
return
Les jeux rapides keep_going
à True
ou laisse False
.
Le problème est, le code semble se poursuivre pendant KeepGoingPrompt
est ouvert. J'essayé stocker une référence à l'prompt
et en ajoutant une boucle comme
while prompt:
time.sleep(1)
mais python se coince dans la boucle et se fige. Y at-il une meilleure façon de le faire?
Merci
La solution
Vous pouvez utiliser la classe tkMessageBox pour faire apparaître une boîte de dialogue de question qui est modal et ne reviendra pas tant que l'utilisateur clique sur un bouton. Voir le livre Tkinter pour plus de détails.
Autres conseils
1) Utilisez-vous votre code à l'intérieur IDLE? Il pourrait être responsable de la non-blocage du dialogue alors qu'il devrait vraiment être le blocage.
2) Si vous exécutez IDLE à l'extérieur ne aide, Privilégiez les options tkinter / dialogue qui spécifient si le comportement bloque ou non le blocage