3 pièce(s) jointe(s)
Problème avec un boucle créant des boutons radio avec image et commande lambda:
Bonjour,
Je fais une boucle qui crée 3 boutons radios (sans indicateurs) avec 3 images (au lieu du texte) et une commande = lambda: fonction(nom du fichier image)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
from tkinter import *
def changeTuiles(file):
print(file)
fenetre=Tk()
controlVar = StringVar()
controlVar.set("Tuil0")
imgTuil=[]
for i in range(3):
fichier="TuilSmall-"+str(i)+".png"
imgTuil.append(PhotoImage(file=fichier))
Radiobutton(fenetre, image = imgTuil[i], indicatoron=0, variable = controlVar, value = "Tuil"+str(i), command=lambda: changeTuiles(fichier) ).grid(row=i, column=1, padx=5)
fenetre.mainloop() |
la création des boutons radio est OK et ils ont bien une image différente dessus (TuilSmall-0.png, TuilSmall-1.png, TuilSmall-2.png Pièce jointe 537130Pièce jointe 537133Pièce jointe 537135),
le grid() et ok aussi. La plus part des actions indexées par les valeurs de i de la boucle semblent bien se passer....
sauf qu'il doit y avoir un truc que j’écris mal car:
Quelque soit le bouton radio sur lequel on clique, la fonction changeTuile(file) imprime toujours " TuilSmall-2.png "
Alors que je m'attendais à avoir le nom du fichier qui est sur le bouton cliqué.
Où est mon erreur svp?