これは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))
EDIT: 私はこの問題に遭遇したときので、より正確に言えば、私は大丈夫、問題は、私はローカル変数を宣言する必要があるので、私はこれを試してみましたと思った:
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から任意の切り抜いている理由私は得ることはありません