2 Stimmen

Interaktive Python-GUI

Python war für mich wirklich holprig, denn das letzte Mal, als ich einen GUI-Client erstellt habe, scheint der Client beim Spawnen eines Prozesses, beim Aufruf eines Shell-Skripts und beim Aufruf einer externen Anwendung zu hängen.

Dies haben mein Hauptproblem mit Python seit damals gewesen, und jetzt bin ich in einem neuen Projekt, kann jemand mir Hinweise geben, und ein Wort der Beratung, um für meine GUI-Python-Anwendung noch interaktiv zu sein, wenn ein anderer Prozess zu erzeugen?

4voto

Alex Martelli Punkte 805329

Am einfachsten (nicht unbedingt "am besten" im abstrakten Sinne) ist es, den Unterprozess in einem separaten Thread zu starten und die Ergebnisse über eine Queue.Queue-Instanz an den Hauptthread zu übermitteln. Der Hauptthread muss diese Warteschlange regelmäßig überprüfen, um zu sehen, ob die Ergebnisse schon eingetroffen sind, aber eine regelmäßige Abfrage ist in jeder Ereignisschleife leicht möglich.

2voto

Noufal Ibrahim Punkte 68934

Ihr Haupt-GUI-Thread wird einfrieren, wenn Sie einen Prozess starten und warten, bis er vollständig ist. Oft können Sie einfach einen Subprozess verwenden und ihn ab und zu auf seine Fertigstellung hin abfragen, anstatt wait bis er fertig ist. Dies verhindert, dass die GUI einfriert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X