J'ai une fonction dans une classe dans laquelle je crée plusieurs boutons tkinter, où le nombre de boutons et les propriétés du bouton dépendent d'un fichier (donc je ne peut pas créer un nombre spécifique de variables pour contenir les boutons).Modifier les identifiants de variables python dans une boucle qui définit un bouton tkinter
Le code je ressemble à ceci (en épargnant la complexité de l'ensemble du code):
import os
import tkinter as tk
Class(GUI):
def ButtonCreator(self):
self.HomeworkList = open("Files\HWNameList.txt", "r")
x = self.HomeworkList.readline()
while not x == "END":
x = x[0:-1]
HomeworkFileName = str("Files\HW-" + x + ".txt")
locals()["self.Button" + x] = tk.Button(master, text = x, command = lambda: self.DisplayHomeworkFile(FileName))
locals()["self.Button" + x].pack()
x = self.HomeworkList.readline()
self.HomeworkList.close()
def DisplayHomeworkFile(self, filename):
os.startfile(filename)
Le fichier que je suis l'ouverture ressemble à ceci ...
HomeworkName1
HomeworkName2
HomeworkName3
END
Lorsque le code est exécuté , il affiche les boutons avec le texte correct écrit sur eux, mais quand je clique dessus, ils n'affichent que le fichier dont le nom de fichier est écrit en dernier dans le fichier HomeworkList. Je ne suis pas sûr de ce que j'ai mal fait.
S'il y a un autre moyen de réaliser ce que j'essaie, je suis ouvert à toutes les suggestions.
Merci.