Se si dispone di una funzione che esegue costantemente un ciclo infinito in background, in che modo la GUI sarà mai sensibile? Sta aspettando che il ciclo finisca e questo rende l'interfaccia inutile. Come viene risolto in PyQT?Come si ottiene una GUI reattiva se il codebehind esegue un ciclo infinte? PyQT
risposta
Utilizzare thread.
In Qt, usano qualcosa chiamato Signals and Slots. Non ho usato Qt dai tempi del college, ma ci sono un sacco di buone risorse qui:
PyQt Wiki: Threading,_Signals_and_Slots
Vedi anche questo legato SO messaggio: Threading in a PyQt application: Use Qt threads or Python threads? o
Lo faresti eseguire il codice non GUI in un QThread. Quindi la tua GUI rimarrà reattiva.
Per un'esercitazione sulla filettatura in QT, si veda questo link:
http://doc.trolltech.com/4.4/threads.html
La documentazione per la classe di filettatura di Qt (QThread) è disponibile a questo link:
http://doc.trolltech.com/4.4/qthread.html#details
Essi sono entrambi riferimenti alla documentazione C++, ma sono comunque entrambi utili anche quando si utilizza PyQt, specialmente dove la documentazione PyQt non è così solida.
- 1. Come organizzare il codice GUI (per PyQt)?
- 2. Come si esegue il ciclo di un array multidimensionale?
- 3. Come combinare OpenCV con PyQt per creare una semplice GUI?
- 4. applicazione pyqt che esegue gli aggiornamenti
- 5. interruzione del ciclo for quando si esegue una funzione all'interno di un ciclo for in R
- 6. Apre un file GUI da un altro file PyQT
- 7. Come si esegue il ciclo di un controllo per la stringa in un documento in Javascript?
- 8. pyqt che disegna su un widget exsiting della GUI
- 9. Come si esegue una funzione ogni secondo
- 10. Come si esegue il ciclo di una stringa multilinea in Ruby?
- 11. Come si esegue un comando Ant se un'attività non riesce?
- 12. Come si ottiene il nome dell'app quando si esegue Rails su Heroku?
- 13. jQuery ottiene il valore di input in un ciclo .each
- 14. Come si crea un programma C# senza una GUI?
- 15. Come si esegue il test (su una riga) se l'output del comando contiene una determinata stringa?
- 16. Come si esegue il ciclo in un file batch di Windows?
- 17. esegue il debug di un grosso ciclo in eclissi
- 18. Come si dice a livello di programmazione se si esegue Architect/StatET?
- 19. Come si ottiene una stringa da un MemoryStream?
- 20. Come si esegue una query su DynamoDB?
- 21. Come segnalare un QThread in esecuzione al PyQt Gui che lo ha avviato?
- 22. Come si ottiene una traccia stack per un MutationObserver attivato?
- 23. Come si ottiene il valore di una proprietà da PropertyInfo?
- 24. Come si ottiene il colore di sfondo di una TextView?
- 25. Come si ottiene un lungo senza segno da una stringa?
- 26. Come si esegue un programma di installazione di Windows e si ottiene un valore di esito positivo/negativo in PowerShell?
- 27. Aggiornamento degli elementi della GUI in PyQT multithread
- 28. Come si ottiene il nome di un dispositivo iPhone
- 29. Come si ottiene GetCustomAttributes?
- 30. Matlab: esegue il file senza aprire la GUI, quindi chiude
Intendevo fornire il secondo link ("questo documento") come link originale, ma ho deciso che sarebbero stati un buon inizio per l'apprendimento di QThread. Modificherò la risposta per essere più coerente –