Wenn Sie eine Funktion haben, die ständig eine Endlosschleife im Hintergrund ausführt, wie wird Ihre GUI jemals reagieren? Es wartet darauf, dass die Schleife beendet wird, und dies macht die Schnittstelle unbrauchbar. Wie wird das in PyQT gelöst?Wie erhalten Sie eine reaktionsfähige GUI, wenn Ihr Codebehind eine Endlosschleife ausführt? PyQT
Antwort
Verwenden Sie Threads. In Qt verwenden sie etwas, das Signals and Slots genannt wird. Ich habe nicht Qt seit dem College verwendet, aber es gibt viele gute Ressourcen hier:
PyQt Wiki: Threading,_Signals_and_Slots
Siehe dies auch SO Post bezogen werden: Threading in a PyQt application: Use Qt threads or Python threads? oder
Sie würden Führen Sie den Nicht-GUI-Code in einem QThread aus. Dann wird Ihre GUI reaktionsfähig bleiben.
Ein Tutorial zum Einfädeln in QT finden Sie unter diesem Link:
http://doc.trolltech.com/4.4/threads.html
Die Dokumentation für Qt-Threading-Klasse (QThread) unter diesem Link verfügbar:
http://doc.trolltech.com/4.4/qthread.html#details
Sie sind beide Verweise auf die C++ - Dokumentation, sind aber auch dann noch wertvoll, wenn PyQt verwendet wird, insbesondere wenn die PyQt-Dokumentation nicht so robust ist.
- 1. Öffnen Sie eine GUI-Datei aus einer anderen Datei PyQT
- 2. Python-GUI PyQt
- 3. PyQT GUI-Test
- 4. Wie senden Sie eine Eingabe in eine Endlosschleife? (C++)
- 5. pyqt GUI, LineEdit, Game Mastermind
- 6. wie ausführt Linux eine Datei
- 7. eine Endlosschleife verlassen?
- 8. So verhindern Sie eine Endlosschleife in ASP.net
- 9. Benötigen Sie Hilfe, um eine reaktionsfähige Fußzeile zu erstellen?
- 10. Prüfen, ob Webseite eine reaktionsfähige Navigation hat
- 11. Finden Sie eine Endlosschleife in Bearbeitung?
- 12. rufen Sie eine Funktion auf, wenn eine Taste gedrückt wird - pyqt
- 13. PyQt - Erzwingen, dass eine Registerkarte zuerst angezeigt wird?
- 14. So integrieren Sie eine Ipython-Konsole in eine PyQT-Anwendung
- 15. Loop to Update Etiketten in PyQT GUI
- 16. Warum python Subprocess.stdin.write() töten PyQt Gui
- 17. So testen Sie eine Methode, die eine SQL-Abfrage ausführt
- 18. PyQt: So erhalten Sie die meisten QListWidget
- 19. Wie einfach eine QColor mit PyQt anzeigen?
- 20. Wie kombiniere ich OpenCV mit PyQt, um eine einfache GUI zu erstellen?
- 21. Wie machen "Profis" eine GUI in Java?
- 22. Tomcat lief in eine Endlosschleife
- 23. * ngFor eine Endlosschleife in angular2
- 24. Wie Code eine Bildschaltfläche in PyQt?
- 25. Erstellen Sie eine GUI in Matlab
- 26. Endlosschleife, wenn Sie ein Formular Post
- 27. Inverse UIlabel Textfarbe, wenn ihr Frame eine UIView schneidet
- 28. Endlosschleife, wenn componentWillReceiveProps
- 29. Wie ruft man eine CodeBehind-Methode von aspx Seite?
- 30. Wie kann sichergestellt werden, dass der Endpunkt eine Methode nicht ausführt, wenn sie bereits ausgeführt wird?
Ich wollte den zweiten Link ("this doc") als den ursprünglichen Link liefern, entschied aber, dass sie zusammen ein guter Anfang für das Lernen von QThread sein würden. Ich werde die Antwort bearbeiten, um kohärenter zu sein –