2015-09-21 18:29 GMT+02:00 giulianc51 <giulian...@gmail.com>: > Il giorno Mon, 21 Sep 2015 18:20:58 +0200 > > [...]
> > devo esemplificare, la mia conoscenza del python non mi consente di > esprimermi nella giusta forma astratta :-( intendevo questo (*): devo > interrogare un device seriale (un gps(**)) e voglio visualizzare in una > table ed in un canvas (tramite pyQt) i dati via via letti; > > eseguo il polling del device e quando i dati sono completi procedo alla > visualizzazione; ultimo particolare, eseguo una scansione continua > quindi ho messo tutte le istruzioni in un ciclo while; orbene, il ciclo > prende il controllo e la visualizzazione grafica viene eseguito alla > fine del ciclo, mentre mi piacerebbe avere la visualizzazione > contestuale alla raccolta dei dati; > Se vuoi usare l'approccio lineare (ciclo while) devi usare i thread, ma fallo nel modo corretto, come ti ha detto Enrico. Qt mette a disposizione il supporto per inviare dati tramite threads diversi. Quindi esegui la funzione che legge dal gps in un thread separato, e passagli come argomento una Queue di Qt. Passa la stessa Queue alla UI. Ogni volta che ricevi le coordinate dal GPS invia i dati tramite la coda, e leggili e visualizzali nella GUI. L'approccio alternativo è usare il supporto di Qt per leggere dalla seriale in modo asincrono. Il problema è che cambia completamente il codice. Purtroppo supporto completo per questo tipo di programmazione richiede un framework come Twisted. Non so come è la situazione per python 3.x. Ciao Manlio
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python