Frage

Ich schreibe ein Programm, dass manchmal ein Fehler auftritt. Wenn es der Fall ist, erscheint es ein Tkinter Dialog fragt den Benutzer auf, ob fortzusetzen. Es ist eine kompliziertere Version davon:

keep_going = False
KeepGoingPrompt(keep_going)
if not keep_going:
    return

Die Eingabeaufforderung setzt keep_going zu True oder Blätter es False. Das Problem ist, scheint der Code fortzusetzen, während KeepGoingPrompt geöffnet ist. Ich versuchte, einen Verweis auf den prompt Speicher und das Hinzufügen eine Schleife wie

while prompt:
    time.sleep(1)

aber Python wird in der Schleife und friert fest. Gibt es einen besseren Weg, es zu tun?

Danke

War es hilfreich?

Lösung

Sie können die tkMessageBox Klasse verwenden, um eine Frage Dialog Pop-up, das modal ist und wird nicht zurückkehren, bis der Benutzer auf eine Schaltfläche klickt. Siehe das Tkinter Buch .

Andere Tipps

1) Sind Sie mit Ihrem Code in IDLE? Es könnte für die Herstellung verantwortlich sein sollte der Dialog nicht blockierende, während es wirklich blockieren.

2) Wenn außerhalb IDLE laufen nicht hilft, sucht tkinter / Dialog-Optionen, die angeben, ob das Verhalten blockiert oder nicht blockiert

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top