Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2981 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  appel de fonction par bouton

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

appel de fonction par bouton

n°2329419
bob_coyote
Posté le 19-02-2019 à 18:28:04  profilanswer
 

Bonjour.
 
Je dois me mettre à la programmation en Python (3 semaines seulement) pour raison professionnelle et aussi pour moi-même.
Je rencontre un problème. Je cherche depuis plusieurs jours et je galère.
 
J'ai créé un tableau avec différents boutons.
Je souhaiterais que chaque bouton appelle une fonction différente.
Mais comme chaque bouton est créé dans la même ligne, je ne sais pas comment appeler ces différentes fonctions...
 
 
 

Code :
  1. from tkinter import *
  2. from Raies import *
  3. from Berylium3 import *
  4. from lithium3 import *
  5. ligne1 = ['H','He']
  6. ligne2 =['Li', 'Be','B','C','N','O','F','Ne']
  7. ligne3=['Na','Mg','Al','Si','P','S','Cl','Ar']
  8. def nom():
  9.     H(test)
  10. test = Tk()
  11. test.geometry('1000x800')
  12. canevas = Canvas(test, width =500, height =400, bg="#000000" )
  13. canevas.place(x = 300,y = 400)
  14. frame_elements =Frame(canevas)
  15. frame_elements.grid()
  16. for j in range(2): # j = colonne
  17.     E = Button(frame_elements, text=ligne1[j], width=2, command=nom)
  18.     E.grid(row=1, column=j)
  19. for j in range(8): # j = colonne
  20.     E = Button(frame_elements, text=ligne2[j], width=2, command=lambda e=ligne2[j]:print(e))
  21.     E.grid(row=2, column=j)
  22. for j in range(8): # j = colonne
  23.     E = Button(frame_elements, text=ligne3[j], width=2, command=lambda e=j:fonction(test,e))
  24.     E.grid(row=3, column=j)
  25. test.mainloop()


 
Pour la première ligne de boutons... vu qu'il y a deux boutons, je voudrais appeler deux fonctions différentes... mais vu qu'il n'y a qu'une ligne de programme pour ce bouton...
Pour la deuxième ligne de boutons, je lui demande de m'afficher le texte du bouton... ça marche (mais ce n'est pas ce que je souhaite faire).
Pour la troisième ligne de boutons, je me suis dit qu'en nommant ces fonctions selon le numéro de la colonne, ça fonctionnerait... mais non, la boucle de création des boutons étant finie, le "e" reste à la valeur finale et c'est la même fonction qui est appelée.
 
Plusieurs questions :
- pourquoi ce "e" qui en fait est le "j" varie-t-il alors que pas le "j" (la boucle est finie)?
- comment m'y prendre ?
 
Comme précisé au départ, je suis tout nouveau, merci par avance de vos futures orientations.

mood
Publicité
Posté le 19-02-2019 à 18:28:04  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  appel de fonction par bouton

 

Sujets relatifs
Fonction onmouseoverExécuter une fonction en PHP avec un bouton HTML
Fonction didSet dans Xcode 10 a disparuComment passer une variable dans une fonction ??
Copier des données en fonction de critèreFonction recherchev vba erreur indice
Bouton supprimercode HTML d'un bouton bas / haut de page dans Google site
Bouton et appel fonction 
Plus de sujets relatifs à : appel de fonction par bouton


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR