Forum
>>
Programmazione Python
>>
GUI
>>
Aggiornare temperatura con tkinter
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Giulius_V |
2016-12-18 14:59:48 - Aggiornare temperatura con tkinter
|
Ciao sono nuovo e uso python da qualche settimana. Non riesco ad aggiornare una label in tempo reale. Qualcuno può aiutarmi?
questo è il code import os import time #Importare Tkinter from Tkinter import * os.system('modprobe w1-gpio') os.system('modprobe w1-therm') temp_sensor1 = "/sys/bus/w1/devices/28-04168237e1ff/w1_slave" temp_sensor2 = "/sys/bus/w1/devices/28-03168187a7ff/w1_slave" def temp_raw1(): f = open(temp_sensor1, 'r') lines = f.readlines() f.close() return lines def read_temp1(): lines = temp_raw1() while lines0.strip()[-3:] != 'YES': time.sleep(0.2) lines = temp_raw1() temp_output1 = lines1.find('t=') if temp_output1 != -1: temp_string = lines1.strip()[temp_output1 + 2:] temp_c = float(temp_string) / 1000.0 return temp_c root = Tk() root.title("Primo Programma") root.geometry("300x300+200+200") root.resizable(False, False) lb=Label(root,text =read_temp1) lb.pack() root.mainloop() |
|
Scritto da Claudio_F |
2016-12-18 16:35:56 - Re: Aggiornare temperatura con tkinter
|
Non entro nel merito della funzione read_temp1 che è sicuramente sbagliata (ad esempio lines1 e lines0 non sono definite e la funzione può ritornare None invece di un float), ma per eseguire cose ciclicamente con tk si usa il metodo after (in questo caso si attiva circa una volta al secondo):
def recall(): lb.configure(text=read_temp1()) root.after(1000, recall) root = Tk() root.title("Primo Programma") root.geometry("300x300+200+200") root.resizable(False, False) lb = Label(root) lb.pack() recall() root.mainloop() *** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione *** |
|
Scritto da Giulius_V |
2016-12-18 17:49:33 - Re: Aggiornare temperatura con tkinter
|
Grazie funziona perfettamente.
per quanto riguarda lo script l'ho praticamente copiato dal web perché volevo sfruttare il raspberry per avere una piccola interfaccia dove si visualizzano delle temperature con dei sensori dallas 1wire sparsi per la casa. grazie ancora |
Pagina: 1
Esegui il login per scrivere una risposta.