Forum >> Programmazione Python >> GUI >> Problema che avviene chiamando una funzione da un'altra funzione

Pagina: 1

Buongiorno a tutti, il mio problema è che chiamando la funzione B dalla funzione A, la funzione B non riconosce una variabile presente nella funzione A dando il messaggio di errore:
_______________________


Exception in Tkinter callback

Traceback (most recent call last):

File "C:\Users\FabrizioAppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1702, in __call__

return self.func(*args)

File "C:/Users/Fabrizio/Desktop/Pyhton/backupper_file/estratto.py", line 4, in stampa_entry

print (e1.get)

NameError: name 'e1' is not defined


________________________




Per praticità e per chiarire meglio, questo è l'estratto del sorgente che da il problema.

Grazie davvero a chi sapesse aiutarmi!




from tkinter import *

def stampa_entry():
print (e1.get)

def Write_lto():
Label(window_1, text="inserisci record number database: ").grid(row=2, column=0)
var1 = StringVar()
e1 = Entry(window_1, textvariable=var1)
e1.grid(row=2, column=1)
ok_button1 = Button(window_1, text='Ok', command=stampa_entry).grid(row=2, column=2, sticky=W, pady=4)

window_1 = Tk()
window_1.title("Backupper")
window_1.geometry("800x400")
write_button = Button()
write_button.grid(row=1, column=0)
write_button.configure(text="write LTO content in the database", command=Write_lto)

window_1.mainloop()

Non hai definito/passato e1, in modo che sia visibile anche dalla funzione stampa_entry().


Il problema è semplicemente questo.

Cya

Grazie Daniele.
Salve ho lo stesso problema , come si fà a passare ?????? Sono un novizio e sto imparando da solo, la base è facile ma appena si vuole fare qualcosa in più!!!!! cominciano i cavoli amari!!!! :) , qualcuno può spiegarmi il tutto . GRazie
Il problema non riguarda tkinter, ma come si usano le funzioni, che cosa è un nome, che cosa è un namespace, che cosa è uno scope di una funzione... puoi seguire un buon libro passo-passo e imparare queste cose (e molte altre) senza impazzire ogni volta a chiederti perché un pezzo di codice non funziona. Il Lutz è sempre una buona scelta, come libro. "Comincio subito a progammare, poi le cose che non tornano le imparo man mano" non è mai una scelta saggia...
https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
Ciao vorrei sapere se hai risolto e come hai risolto, perchè anche io ho un problema simile e mi serve per venirne a capo!!!!!
GRazie!!!!!
---
Buongiorno a tutti, il mio problema è che chiamando la funzione B dalla funzione A, la funzione B non riconosce una variabile presente nella funzione A dando il messaggio di errore:
_______________________


Exception in Tkinter callback

Traceback (most recent call last):

File "C:\Users\FabrizioAppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1702, in __call__

return self.func(*args)

File "C:/Users/Fabrizio/Desktop/Pyhton/backupper_file/estratto.py", line 4, in stampa_entry

print (e1.get)

NameError: name 'e1' is not defined


________________________




Per praticità e per chiarire meglio, questo è l'estratto del sorgente che da il problema.

Grazie davvero a chi sapesse aiutarmi!




from tkinter import *

def stampa_entry():
print (e1.get)

def Write_lto():
Label(window_1, text="inserisci record number database: ").grid(row=2, column=0)
var1 = StringVar()
e1 = Entry(window_1, textvariable=var1)
e1.grid(row=2, column=1)
ok_button1 = Button(window_1, text='Ok', command=stampa_entry).grid(row=2, column=2, sticky=W, pady=4)

window_1 = Tk()
window_1.title("Backupper")
window_1.geometry("800x400")
write_button = Button()
write_button.grid(row=1, column=0)
write_button.configure(text="write LTO content in the database", command=Write_lto)

window_1.mainloop()





Pagina: 1



Esegui il login per scrivere una risposta.