【发布时间】:2017-09-16 02:29:33
【问题描述】:
我在一个类中有一个函数,我在其中创建了几个 tkinter 按钮,其中按钮的数量和按钮属性取决于文件(因此我无法创建特定数量的变量来保存按钮)。
我的代码看起来像这样(避免整个代码的复杂性):
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 文件的文件。不知道我做错了什么。
如果有其他方法可以实现我正在尝试的目标,我愿意接受所有建议。
谢谢。
【问题讨论】:
标签: python class tkinter variable-assignment