0
我在一个类中创建了几个tkinter按钮,其中按钮数量和按钮属性取决于文件中的函数(所以我不能创建特定数量的变量来保存按钮)。在定义tkinter按钮的循环中更改python变量标识符
我的代码看起来像这样(爱惜整个代码的复杂性):
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)
我打开看起来像这样的文件...
HomeworkName1
HomeworkName2
HomeworkName3
END
当代码运行,它会显示写在它们上面的正确文本的按钮,但是当我点击它们时,它们只显示文件名的文件最后写在HomeworkList文件中。不知道我做错了什么。
如果还有其他方法可以实现我正在尝试的功能,我可以接受所有建议。
谢谢。