Sto cercando di creare un paio di tasti (con una per) in questo modo:Tkinter assegnare il comando pulsante in loop con lambda
def a(self, name):
print name
users = {"Test":"127.0.0.0", "Test2":"128.0.0.0"}
row = 1
for name in users:
user_button = Tkinter.Button(self.root,
text=name,
command=lambda: self.a(name))
user_button.grid(row = row, column = 0)
row+=1
e per i pulsanti per ogni ottenere il loro proprio parametro (Test ottenendo test e Test2 ottiene Test2) ma quando premo i pulsanti entrambi stampano "Test2" che significa che stanno usando la stessa funzione con lo stesso parametro.
Come posso risolvere questo?
Grazie! funziona perfettamente ora: D – Shay
Non è un problema di tkinter, è un problema riguardante la nidificazione di funzioni, chiusure, ecc. Esiste anche in altri contesti completamente diversi. Tuttavia +1, come altrimenti descrive esattamente cosa succede. – glglgl
@glglgl Sei corretto al 100%. Non la migliore scelta di parole da parte mia, rivedrà. – mshildt