こんにちは、 私は奇妙なエラーに悩まされているので、カスケードメニューでボタンを使いたいと思っています。 。次のようにTkinter:メニューのボタンをクリックすると、間違った引数で機能が起動する
コードは次のとおりです。
from tkinter import *
def say_hi(name):
print(name)
root = Tk()
menu = Menu(root)
root.config(menu=menu)
subjects_menu = Menu(menu)
menu.add_cascade(label="Subjects", menu=subjects_menu)
d = ["name1", "name2"]
for name in d:
subjects_menu.add_command(label=name, command=lambda:say_hi(name))
'''
this is also not working
name = "Math"
subjects_menu.add_command(label=name, command=lambda:say_hi(name))
name = "Physics"
subjects_menu.add_command(label=name, command=lambda:say_hi(name))
'''
root.mainloop()
だから私は(私はそれらの数を予測することはできません)コンソールでクリックしたボタンの名前を印刷し、そして反復ではなく、一つ一つで、ボタンを追加したい
プログラムの実行後、エラーは表示されず、ウィンドウが表示されます。どちらのボタンをクリックしても、コンソールは「名前2」を表示します。 私はいくつかの名前を追加しました - それは常に最後のオプションの名前を表示します。
おかげで、事前に
[OK]を、おかげでたくさん。最初にラムダを使用 –