giovanni18
Profilo di
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.