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

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top