Forum >> Programmazione Python >> GUI >> aggiornare dato in finestra TKinter

Pagina: 1

Ciao,
premetto che sono mooolto ignorante in materia, ma sto cercando di realizzare una finestra di dialogo con un programmino che ho creato per la gestione del mio acquario.




Ora....ho un problemino.

Come posso fare per far si che mi venga scritto un dato nella finestra e aggiornato ogni secondo o più?




#!/usr/bin/env python

from tkinter import *


class MiaApp:
  
  def __init__(self, genitore):

    in_file = open("temp.txt","r")
    t= in_file.read()
    in_file.close()
    
    testo = Label(text='ACQUARIO',font=("helvetica",18)).grid(column =5, row =1)
    luci = Label(text='LUCI',font=('helvetica',14)).grid(column =1, row =3)
    aria = Label(text='ARIA',font=('helvetica',14)).grid(column =2, row =3)
    co2 = Label(text='CO2',font=('helvetica',14)).grid(column =3, row =3)
    cpu = Label(text='CPU',font=('helvetica',10)).grid(column =9, row =2, sticky=W)
    acqua = Label(text='ACQUA T°',font=('helvetica',10)).grid(column =1, row =2, sticky=W)
    temp = Label(text=t,font=('helvetica',10)).grid(column =2, row =2, sticky=W)

    self.pulsante_luci = Button()
    self.pulsante_luci.configure(text = "ON", background = "grey", fg = 'black')
    self.pulsante_luci.grid(column =1, row =4)  
    self.pulsante_luci.bind("<Button-1>", self.pulsante_luciPremuto)

    self.pulsante_aria = Button()
    self.pulsante_aria.configure(text = "ON", background = "grey",fg = 'black')
    self.pulsante_aria.grid(column =2, row =4)  
    self.pulsante_aria.bind("<Button-1>", self.pulsante_ariaPremuto)

    self.pulsante_co2 = Button()
    self.pulsante_co2.configure(text = "ON", background = "grey",fg = 'black')
    self.pulsante_co2.grid(column =3, row =4)  
    self.pulsante_co2.bind("<Button-1>", self.pulsante_co2Premuto)

    self.pulsante2 = Button()
    self.pulsante2.configure(text = "MANUALE", background = "grey",fg = 'black')   
    self.pulsante2.grid(column =8, row =5)
    self.pulsante2.bind("<Button-1>", self.pulsante2Premuto)

    self.pulsante3 = Button()
    self.pulsante3.configure(text = "AUTOMATICO", background = "grey",fg = 'black')   
    self.pulsante3.grid(column =10, row =5)
    self.pulsante3.bind("<Button-1>", self.pulsante3Premuto)     
      
  def pulsante_luciPremuto(self, evento):
    if self.pulsante2["background"] == "green":
      if self.pulsante_luci["background"] == "green": 
        self.pulsante_luci["background"] = 'red'
        self.pulsante_luci['fg'] = 'black'
        self.pulsante_luci['text'] = 'OFF'
        a = open ("luci.txt", "w")
        a.write("off")
        a.close
    
      else:
        self.pulsante_luci["background"] = "green"
        self.pulsante_luci['fg'] = 'black'
        self.pulsante_luci['text'] = 'ON'
        a = open ("luci.txt", "w")
        a.write("on")
        a.close
    else:
      self.pulsante_luci["background"] = "grey"
      self.pulsante_luci['fg'] = 'black'
      self.pulsante_luci['state'] = 'disabled'

  def pulsante_ariaPremuto(self, evento):
    if self.pulsante2["background"] == "green":
      if self.pulsante_aria["background"] == "green": 
        self.pulsante_aria["background"] = "red"
        self.pulsante_aria['fg'] = 'black'
        self.pulsante_aria['text'] = 'OFF'
        a = open ("aria.txt", "w")
        a.write("off")
        a.close
    
      else:
        self.pulsante_aria["background"] = "green"
        self.pulsante_aria['fg'] = 'black'
        self.pulsante_aria['text'] = 'ON'
        a = open ("aria.txt", "w")
        a.write("on")
        a.close
    else:
      self.pulsante_aria["background"] = "grey"
      self.pulsante_aria['fg'] = 'black'
      self.pulsante_aria['state'] = 'disabled'

  def pulsante_co2Premuto(self, evento):
    if self.pulsante2["background"] == "green":
      if self.pulsante_co2["background"] == "green": 
        self.pulsante_co2["background"] = 'red'
        self.pulsante_co2['fg'] = 'black'
        self.pulsante_co2['text'] = 'OFF'
        a = open ("co2.txt", "w")
        a.write("off")
        a.close
    
      else:
        self.pulsante_co2["background"] = "green"
        self.pulsante_co2['fg'] = 'black'
        self.pulsante_co2['text'] = 'ON'
        a = open ("co2.txt", "w")
        a.write("on")
        a.close
    else:
      self.pulsante_co2["background"] = "grey"
      self.pulsante_co2['fg'] = 'black'
      self.pulsante_co2['state'] = 'disabled'
        
  def pulsante2Premuto(self, evento): 
    if self.pulsante2["background"] == "grey" or "grey": 
      self.pulsante2["background"] = "green"
      self.pulsante3["background"] = "grey"
      

  def pulsante3Premuto(self, evento):
    if self.pulsante2["background"] == "green" or "grey": 
      self.pulsante2["background"] = "grey"
      self.pulsante3["background"] = "green"
      self.pulsante_luci["background"] = "grey"
      self.pulsante_aria["background"] = "grey"
      self.pulsante_co2["background"] = "grey"
      '

                
radice = Tk()

radice.title('ACQUARIO')
miaApp = MiaApp(radice)
radice.mainloop()

Così mi restituisce la Temperatua Acqua, la quale viene letta da un file costantemente aggiornato.

Però non mi viene ovviamente aggiornato il dato.

Secondo voi qual'è il metodo migliore per aggiornarlo?




Grazie

Ema
#!/usr/bin/env python

from tkinter import *

class MiaApp:
  
  def __init__(self, genitore):
    self.genitore = genitore


  def recall(self):
    ###############################################
    # qualcosa da fare circa una volta al secondo #
    ###############################################
    self.genitore.after(1000, self.recall)


radice = Tk()
radice.title('ACQUARIO')
miaApp = MiaApp(radice)
radice.after(1000, miaApp.recall)
radice.mainloop()
*** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione ***
Grazie!!!!


Pagina: 1



Esegui il login per scrivere una risposta.