Forum
  
    >> 
    
      Programmazione Python
    
  
    >> 
    
      GUI
    
  
  >>
  
    aggiornare dato in finestra TKinter
  
  
  
  
  
  
  
   
  
    
    
    
      
      
  
Pagina: 1
  
Esegui il login per scrivere una risposta.
      
  
      
    Pagina: 1
| 
          
Scritto da Ema  | 
        
          
 2016-08-01 14:50:25 - aggiornare dato in finestra TKinter 
  
 | 
      
| 
          
          
             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  | 
      |
| 
          
Scritto da Claudio_F  | 
        
          
 2016-08-01 17:29:04 - Re: aggiornare dato in finestra TKinter 
  
 | 
      
          
          
            #!/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 *** | 
      |
| 
          
Scritto da Ema  | 
        
          
 2016-08-01 18:14:53 - Re: aggiornare dato in finestra TKinter 
  
 | 
      
| 
          
          
             Grazie!!!! 
          
          
            
          
          
         | 
      
Pagina: 1
Esegui il login per scrivere una risposta.
  
 di fianco ai colori per non perdere l'indentazione ***