[Python] nuova iscrizione e ... presentazione

Manlio Perillo manlio.perillo a gmail.com
Lun 21 Set 2015 23:21:07 CEST


2015-09-21 18:29 GMT+02:00 giulianc51 <giulianc51 a 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
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150921/eabdb3d2/attachment-0001.html>


Maggiori informazioni sulla lista Python