因此,当我尝试为侧边栏制作按钮时,我使用 for 循环为每个类制作一个按钮。
for index, course in enumerate(api.pull_courses('insert_my_api_key_which_works')):
course_button = customtkinter.CTkButton(self, text=course,
command=lambda: controller.show_frame('ClassPage' + str(index)))
print(index)
course_button.place(relx=0.5, rely=((index + 1) * ((0.6)/9))+0.2, anchor=customtkinter.CENTER)
print(index)
函数给出输出
0
1
2
3
4
5
6
7
但是
command=lambda: controller.show_frame('ClassPage' + str(index))
一直尝试给 ClassPage7
上课,而不是 Classpage0
、ClassPage1
等。
有谁知道原因或有解决办法以供将来参考吗?
要修复它,请按以下方式创建
lambda
:
command=lambda index=index: controller.show_frame("ClassPage" + str(index))