Bonjour, j'ai un problème dans mon programme python avec Tkinter. J'ai créé un menu contenant des sauvegardes et j'aimerai qu'en cliquant sur une partie, on lance la fonction 'charger' avec pour argument le nom cette partie ou au moins que l'on puisse le récupérer. Voici mon code pour l'instant:
menuPrincipal = Menu()
fenetre.config(menu = menuPrincipal)
# menu "chargement"
menuCharger = Menu()
menuPrincipal.add_cascade(label = "charger", menu = menuCharger)
# toutes les parties
for i in listeSauvegardes():
menuCharger.add_command(label = i, command = self.charger)
Peux-tu créer un mini code fonctionnel et reproduisant le problème ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
from tkinter import *
listeSauvegardes = ["save1", "save2", "save3"]
fenetre = Tk()
def charger(nomSauvegarde):
"""chargement..."""
a = 1 # pour l'instant on ne fait rien
menuPrincipal = Menu()
fenetre.config(menu = menuPrincipal)
# menu "chargement"
menuCharger = Menu()
menuPrincipal.add_cascade(label = "charger", menu = menuCharger)
# toutes les parties
for i in listeSauvegardes:
menuCharger.add_command(label = i, command = charger)
Pour l'instant l'appel de la fonction 'charger' provoque une erreur car je n'arrive pas à y passer comme paramètre le nom de la sauvegarde.
from tkinter import *
listeSauvegardes = ["save1", "save2", "save3"]
fenetre = Tk()
def charger(nomSauvegarde):
"""chargement..."""
def wrap():
print(nomSauvegarde)
return wrap
menuPrincipal = Menu()
fenetre.config(menu=menuPrincipal)
# menu "chargement"
menuCharger = Menu()
menuPrincipal.add_cascade(label="charger", menu=menuCharger)
# toutes les parties
for i in listeSauvegardes:
menuCharger.add_command(label=i, command=charger(i))
fenetre.mainloop()
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Merci ça a marcher. Mais j'ais du mal à en comprendre le fonctionnement. La fonction 'charger()' renvoie une fonction 'wrap()' mais ou passe le paramètre 'sauvegarde' à ce moment là?
Ce que demande command est une fonction sans argument, que retourne charger ? Une fonction sans argument...
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
j'aimerai qu'en cliquant sur une partie, on lance la fonction 'charger' avec pour argument le nom cette partie ou au moins que l'on puisse le récupérer
Donc l'argument vient d'où ? Tu m'as donné un exemple simple à exécuter où il y avait cette liste de noms.
listeSauvegardes = ["save1", "save2", "save3"]
nomSauvegarde sera une variable qui sera modifiée selon l'incrémentation dans une boucle for.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
[Tkinter] savoir d'où à été appelée une fonction
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)