creation de commandes dynamiques pour des boutons
Bonjour,
J'ai développé une appli qui regroupe plusieurs applis à partir de pyhton et tkinter.
Chaque appli à son propre bouton qui lance son propre code. Tout est actuellement géré en fixe concernant les boutons et commandes liées.
Hors je suis en train de modifier la façon dont sont générés les boutons.
Je veux créer les boutons à partir d'un fichier ini qui me donne la liste des applis à prendre en compte.(le nombre et leur nom)
Jusque la j'arrive à faire tout ça, ce qui me bloque c'est que je n'arrive pas a générer la "command" des boutons en fonction de leur noms qui doit lancer le code qui porte leur nom également.
voici un bout du code pour comprendre le fonctionnement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
#1ER APPLI
def WEBMATIQUE_72(event=None):
.....
#2EME APPLI
def GK(event=None):
.....
#3
....
#CREATION DES BOUTONS A PARTIR DE LA
LISTE_COULEURS = [......]
num_appli = 0
num_couleur = 0
parser = ConfigParser()
parser.read('C:\APPLILOC\APPLI+\APPLI+_PARAM.ini')
sec = parser.sections()[0]
for name, value in parser.items(sec):
if value=='OUI' or value=='oui':
LISTE_BOUTONS.append(name)
print(LISTE_BOUTONS)
for i in LISTE_BOUTONS:
if num_appli <= 15:
NOM_APP = LISTE_BOUTONS[num_appli].upper()
print(NOM_APP)
bouton = Button(Frame_BOUTONS_1, text=(LISTE_BOUTONS[num_appli].upper()).replace("_", "\n"), background=LISTE_COULEURS[num_couleur],command=lambda temp_APP=NOM_APP: ???? , font=font.Font(size=8, weight="bold"), height=2)
bouton.pack(side='left')
ws.update_idletasks()
if bouton.winfo_width()<50:
bouton.config(width=5)
else:
bouton = Button(Frame_BOUTONS_2, text=(LISTE_BOUTONS[num_appli].upper()).replace(" ", "\n"), background=LISTE_COULEURS[num_couleur], command="", font=font.Font(size=8, weight="bold"), height=2)
bouton.pack(side='left')
ws.update_idletasks()
if bouton.winfo_width() < 50:
bouton.config(width=5)
num_appli=num_appli+1
if num_couleur == 27:
num_couleur = 0
else:
num_couleur = num_couleur + 1 |
j'ai rechercher sur le net et j'ai trouvé des utilisation de lambda qui semble convenir mais soit je n’exécute rien soit c'est toujours le même code qui ce lance peut importe le bouton.
Merci d'avance pour votre aide.