Hallo Community,
ich bin gerade dabei, ein Programm zu schreiben, welches die Elemente einer Liste ausliest und für jedes Element einen Button erstellt, welcher eine Funktion mit Parameter aufruft. Hier der Codeabschnitt:
global cnt
cnt=open(".\\Actions\\config\\email\\adresses.mail").read().split("\n")
x=20
y=60
maillist=[]
cter=0
for mailf in (cnt):
print(mailf)
maillist.append(cnt.index(mailf))
globals()[f"var{cter}"]=tkinter.Button(root, text=mailf, bg="#222222", fg="#ffffff", command=lambda: om1(mailf))
globals()[f"var{cter}"].place(x=x, y=y)
tkinter.Button(root, text=mailf, bg="#222222", fg="#ffffff", command=lambda: om1(maillist[cter])).place(x=x, y=y)
cter+=1
y+=40
if(r_geometry_y<y):
r_geometry_y+=40
root.geometry(f"300x{r_geometry_y}+800+300")
Leider wird, egal auf welchen Button ich klicke, der Funktion om1 immer der Wert übergeben, der als letztes in der Variable mailf gespeichert war. Was muss ich verändern, damit jeder Button immer den Parameter übergibt, der zum Zeitpunkt der Erzeugung des Buttons in mailf gespeichert war? (Die Länge der Liste wird erst zur Laufzeit bestimmt, also kann ich keine feste Anzahl an Buttons anlegen)