编辑:问题被标记为重复,但我查看了其他线程,并使用了代码并按照其中给出的示例进行操作,但仍然遇到问题,我直接问了为什么。
我试图在程序中动态创建一些按钮,但最后却遇到一个奇怪的错误,我无法弄清楚。我的按钮创建得很好,但是它们似乎都附有相同的命令,即使每个按钮都应该改变。
以下是处理按钮创建的代码:
LANGUAGES = ["JAVA", "PYTHON", "HTML"]
for l in LANGUAGES:
ttk.Button(self, text=l, command=lambda: controller.show_frame(eval(l))).pack()
这些类都是相同的,但名称不同:
class PYTHON(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
id = 1
label = tk.Label(self, text=LANGUAGES[id], font = LARGE_FONT)
label.pack()
该命令始终将我发送到HTML页面,即使我认为我已经对其进行了编码以根据给定的名称将我发送到每个页面。有人知道这是怎么回事吗?