0
它在tkinter中。最後一行將x = len(FRAME_LIST)「Buttons」添加到下拉菜單中。問題是它們都引用同一幀(FRAME_LIST中的最後一幀)。如何讓每個按鈕都引用FRAME_LIST中的不同幀?如何用for循環制作按鈕
for F in FRAME_LIST:
frame = ChallengePage(mainframe,self, F)
self.frames[F] = frame
frame.grid(row = 0, column = 0, sticky = "nsew")
subMenu1.add_command(label = F.id, command = lambda: self.show_frames(F))
編輯: 所以更準確地說,當我遇到這個問題,我想好了,問題是我需要聲明一個局部變量,所以我嘗試這樣的:
A = F
subMenu1.add_command(label = F.id, command = lambda: self.show_frames(A))
但它沒有工作,即使A被聲明爲內部循環,並在每個循環中重新聲明,它仍然會得到相同的結果。
它顯示瞭解決方案:
subMenu1.add_command(label = F.id, command = lambda A = F: self.show_frames(A))
不知何故神奇地工作,但我不明白爲什麼它是從我的本地A.任何不同勢