Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    14

    [python] Mainloop ?

    Ciao a tutti !
    E' da molto tempo che non tocco python, inoltre non mi ci sono mai "buttato" dentro diciamo..
    Devo fare un piccolo programmino che mi scrive i dati provenienti da una porta seriale su di un file di testo.
    Siccome il programma deve ciclare di continuo ho dovuto mettere un pulsante per chiudere almeno il file di testo:
    codice:
    import serial
    from Tkinter import *
    
    form= Tk()
    
    def chiudi():
        xbee.close()
        doc.close()
        
    xbee=serial.Serial("/dev/ttyUSB1",9600)
    doc=open("/home/dario/Scrivania/xbee.txt", "w")
    
    button= Button(form,command=chiudi).pack()
    
    
    while(1):
     msg=xbee.readline()
     msg=msg.strip()
     doc.write(msg)
    
    form.mainloop()
    Come vedete il ciclo non si interrompe mai ma non mi interessa, come ho già detto sopra mi importa solo chiudere il file di testo in scrittura prima di interrompere bruscamente il programma.
    Ora, io non ho capito dove va messo il mainloop perchè così non funziona..

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Finchè scrivi nel file, non puoi chiuderlo. E se ci scrivi con un loop infinito, non potrai mai chiuderlo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    14
    Originariamente inviato da oregon
    Finchè scrivi nel file, non puoi chiuderlo. E se ci scrivi con un loop infinito, non potrai mai chiuderlo.
    Mmm la mia domanda era un'altra, cioè: dove va messo il mainloop?
    Comunque per evitare fraintendimenti facciamolo così
    codice:
    import serial
    from Tkinter import *
    
    form= Tk()
    
    def chiudi():
        xbee.close()
        doc.close()
        aperto=False
        
    xbee=serial.Serial("/dev/ttyUSB1",9600)
    doc=open("/home/dario/Scrivania/xbee.txt", "w")
    aperto = True
    button= Button(form,command=chiudi).pack()
    
    
    while(aperto):
     msg=xbee.readline()
     msg=msg.strip()
     doc.write(msg)
    
    form.mainloop()
    In questa maniera la form non è visibile.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.