2016-12-19 3 views
0

Ich verstehe nicht viel über Gui Aktion Ausführungsreihenfolge usw., aber mein Problem ist sehr einfach: Ich habe einen Code, der wie folgt aussieht:PyQt GUI Änderung Button-Textverarbeitungszeit

button.setText('text') 
do sth 
time.sleep(1) 
do sth else 

Irgendwie Das Skript kann den Text immer nicht vor dem Zeitlimit setzen. Daher bricht das Zeitlimit auch diese Aktion ab und der Text wird erst nach dem Zeitlimit angezeigt. Wie kann ich diese Codezeile angeben, um die Ausführung trotz time.sleep() zu beenden? Oder muss ich eine if-Anweisung vorstellen, nur warten, bis die Taste den Text gesetzt hat (gibt es eine bessere Art und Weise)

Dank

+0

Genau kann ich Ihre Frage verstehen. Bitte übermittle den genauen Code, dann kann ich dir helfen. –

Antwort

0

GUI-Anwendungen typischerweise eine Ereignisschleife verwenden, die tatsächlich verantwortlich ist für Malen Sie Ihre Widgets usw.

Sie können diese Ereignisschleife nicht mit einem Ruhezustand blockieren, oder Ihre Anwendung wird nicht mehr reagieren.

Verwenden Sie stattdessen im Fall von Qt QTimer, um alle asynchronen Vorgänge aufzurufen.

+0

Entschuldigung für die verspätete Antwort, aber immer noch für die Aufzeichnung: QTimer war natürlich die Lösung. Ich habe QTimer.singleshot benutzt, um mein Problem zu lösen. Danke! –