Profilo di 
  
    giovanni18
  
  
    
  
    
      
    
  
      
  
      
    | Nome | giovanni18 | 
|---|---|
| Indirizzo email | n/a | 
| Messaggi | 1 | 
- 
      - 2018-11-12 16:24:49
- problema con il .get e il keyerror
- Forum >> Programmazione Python >> GUI
- ciao a tutti!
 
 ringrazio in anticipo chiunque riesca a darmi una risposta, premetto che sono nuovo nel settore della programmazione, quindi non so ancora poco.
 
 
 
 
 io sto creando un programma per il calcolo delle temperature interstiziali di una parete e sto sfruttando tkinter per crearne la GUI, tuttavia mi da questo errore:
 
 
 
 
 Exception in Tkinter callback
 Traceback (most recent call last):
 File "C:\Users\gioviAppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1702, in __call__
 return self.func(*args)
 File "C:\Users\giovi\Desktop\programma super powa\FILE SISTEMA\app1.py", line 231, in controlloavanti
 locals()["spesStrat"+str(r)] = locals()["b"+"spesStrat"+str(r)+"input"].get()
 KeyError: 'bspesStrat1input'
 
 
 
 
 
 
 
 
 quando eseguo il .get in questa parte del programma:
 
 
 
 
 def avanti():
 Nstrat=Nstratinput.get()
 Nstrat =int(Nstrat)
 n1=13
 r=0
 i=0
 for i in range(Nstrat):
 
 locals()["b"+"spesStrat"+str(r)]=Label(zonainserimento,text="digittare lo SPESSORE dello strato N°"+str(r)+" m:")
 locals()["b"+"spesStrat"+str(r)].grid(row=n1,column=0)
 locals()["b"+"spesStrat"+str(r)+"input"]=Entry(zonainserimento,bg="grey")
 locals()["b"+"spesStrat"+str(r)+"input"].focus_set()
 locals()["b"+"spesStrat"+str(r)+"input"].grid(row=n1,column=1)
 
 n1=n1+1
 
 locals()["b"+"condStrat"+str(r)]=Label(zonainserimento,text="digittare la CONDUTTIVITA termica dello strato N°"+str(r)+" [w/m*k]:")
 locals()["b"+"condStrat"+str(r)].grid(row=n1,column=0)
 locals()["b"+"condStrat"+str(r)+"input"]=Entry(zonainserimento,bg="grey")
 locals()["b"+"condStrat"+str(r)+"input"].focus_set()
 locals()["b"+"condStrat"+str(r)+"input"].grid(row=n1,column=1)
 n1=n1+1
 r=r+1
 
 
 pulsanteAVANTI.grid_remove()
 ##debug
 def controlloavanti():
 Nstrat=Nstratinput.get()
 Nstrat =int(Nstrat)
 r=1
 i=0
 
 for i in range(Nstrat):
 
 try:
 locals()["spesStrat"+str(r)] = locals()["b"+"spesStrat"+str(r)+"input"].get()
 locals()["spesStrat"+str(r)] =float(locals()["spesStrat"+str(r)])
 return locals()["spesStrat"+str(r)]
 M2=2
 except ValueError:
 M2=1
 
 
 if M2==1:
 (locals()["spesStrat"+str(r)+"input"]).configure(bg="red")
 
 if M2!=1:
 (locals()["spesStrat"+str(r)+"input"]).configure(bg="green")
 
 
 try:
 locals()["condStrat"+str(r)] = locals()["b"+"condStrat"+str(r)+"input"].get()
 locals()["condStrat"+str(r)]=float(locals()["condStrat"+str(r)])
 return locals()["condStrat"+str(r)]
 N2=2
 except ValueError:
 N2=1
 
 
 
 if N2==1:
 (locals()["condStrat"+str(r)]).configure(bg="red")
 
 if N2!=1:
 (locals()["condStrat"+str(r)]).configure(bg="green")
 r=r+1
 pulsanteCONTROLLO1 = Button (zonainserimento, text = "CONTROLLA VALORI",bg="yellow", command =controlloavanti)
 pulsanteCONTROLLO1.grid(row=n1+3,column=1,padx=15)
 
 
 
 pulsanteFINE=Button(zonamedia, text="CALCOLA", bg="yellow", command=calcolo)
 pulsanteFINE.grid(row=1, column=4)
 
 
 
 
 vi posso giurare che le ho provate tutte ma non riesco a venirne a capo.
 
 Allego anche il file completo nel caso possa tornarvi utile.
 
 
 
 
 
  