Il 05/08/2014 16:25, Marco Giusti ha scritto:
vediamo se così va'
meglio.
HO modificato il codice così...


import time
import threading
import serial
import gtk
import gobject


class Quit(Exception):
    pass


class Gui:

    def __init__(self, quit):
        self.quit = quit
        win = gtk.Window()
        win.connect("destroy", lambda w: self.exit())
        self.textbuffer = gtk.TextBuffer()
        textview = gtk.TextView(self.textbuffer)
        textview.set_editable(False)
        sw = gtk.ScrolledWindow()
        sw.add(textview)
        win.add(sw)
        win.set_default_size(300, 200)
        win.show_all()

    def exit(self):
        self.quit.set()
        gtk.main_quit()

    def add_text(self, text):
        enditer = self.textbuffer.get_end_iter()
        self.textbuffer.insert(enditer, text)


class Thread2 (threading.Thread):

    def __init__(self, name, gui, quit):
        threading.Thread.__init__(self, name=name)
        self.__gui = gui
        self.__quit = quit


    def run(self):
        self.ser=serial.Serial("/dev/ttyACM0",9600)
        while True:
            line = self.ser.read()
            gobject.idle_add(self.__gui.add_text, line)


if __name__ == "__main__":
    gobject.threads_init()
    quit = threading.Event()
    gui = Gui(quit)
    t = Thread2("Serial", gui, quit)
    t.start()
    gtk.main()


e funziona bene!!
Grazie mille.
Provo a studiarmi un po il codice... perché ci sono delle cose che non capisco bene.
A breve ci risentiremo con nuove domande temo.
Ciao e grazie ancora.
Matteo.

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a