Probleme d'argument fonction
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour. Voila, je voudrais, dans une boucle, crre un bouton avec un fonction et un argument
from tkinter import * F = Tk() def Fonction(num): print(num) x=0 y=5 while x != y: globals()["Button"+str(x)]=Button(F, command=lambda:Fonction(x)) globals()["Button" + str(x)].pack() x = x+1 F.mainloop()
Logique, les boutons affichent tous 5. Pouvez vous m'aider au revoir bonne soirée merci
- Probleme d'argument fonction
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
7 réponses
bonjour,
globals()["Button"+str(x)]=tkinter.Button(F, command=lambda y=x :Fonction(y))
import tkinter F = tkinter.Tk() def Fonction(num): print(num) MyButtons={} x=0 y=5 while x != y: MyButtons[x]=tkinter.Button(F, command=lambda y=x :Fonction(y)) MyButtons[x].pack() x = x+1 F.mainloop()
Bonjour,
D'autant que les widgets créés dans le programme principal sont visibles dans les fonctions eventuelles,
donc pas besoin de les globaliser ...
def show_entry(): txt = e1.get() ................... ................ e1 = Entry(f1, show = '*', width = 10) e1.place(x = 110,y = 10) e1.focus() .................
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSalut.
Pr.Witherfire, as-tu pour ambition d'être une référence pour tout ce qu'il ne faut pas faire ? Tu tentes d'établir un record du code le plus crade ?
- import * ✓
- Obstination à vouloir utiliser des variables dynamiques. ✓
- Se servir d'une boucle while au lieu d'un simple for, de plus avec une condition de différence ✓
- Sauts de lignes inutiles nuisant à la lecture du code ✓
- Espaces manquants nuisant à la lecture du code ✓
- Identifiants non conformes et non représentatifs ✓
En 11 lignes de code, c'est pas mal, je pense tout de même que tu peux faire mieux (enfin pire pour nous).
Il existe des outils, lesquels sont utilisables en lignes de commandes dans ta console dos, et même utilisables dans les commandes d'exécutions de ton EDI, comme :
- black pour améliorer la mise en forme du code.
https://pypi.org/project/black/
- pyflakes (ou encore pep8) : analyseur des erreurs de code (bien moins strict que pylint)
https://pypi.org/project/pyflakes/
- pylint : même dessein que pyflakes, mais très très strict, cela peut être une assistance à améliorer sa façon de coder, il peut être configuré à souhaits.
https://pypi.org/project/pylint/
- vulture : pour la détection de code (variables, attributs, fonctions, etc) déclarés mais inusités, très pratique pour nettoyer du code.
https://pypi.org/project/vulture/
Ces outils indispensables doivent être dans la panoplie de tout bon codeur python.
Bonjour Goupil,
Peut-être le sais-tu déjà, mais bon ... :-)
on peut insérer des liens directement cliquables avec l'une des icones présentes au dessus de la fenêtre de réponse:
Salut Phil,
bah non, il n'y a pas pour les visiteurs une façon d'insérer des liens dans les messages, il y a les boutons Bold, Italic, Underline, les 2 types de listes, les boutons d'insertions (image externe et code), et c'est tout =)
Après ça peut rester compréhensible qu'un visiteur ne puisse insérer des liens afin d'éviter le spam et la pub, mais il pourrait quand même y avoir des domaines « sûrs » qui seraient établis dans une liste blanche. Ça serait obligatoirement beaucoup plus de choses à gérér de la part des modos, contributeurs du forum. Rien n'est aisé dès l'instant où des « anonymes » peuvent écrire dans un forum.
Ce qui me gonfle le plus ici, ce sont les sauts de lignes qui ne sont pas respectés dans mes messages et cet insupportable système d'insertion de code, l'ancien était très bien.
C'est certainement non conformiste. Dans le cadre d'un prototype personnel, je pense que cela peut fonctionner sans souci.