Forum >> Programmazione Python >> GUI >> problema con il .get e il keyerror

Pagina: 1

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.



Allegati


Pagina: 1



Esegui il login per scrivere una risposta.