使用与所有其他命令相同的命令向选项菜单添加选项

add options to option menu with the same command as all the others

您好,我正在尝试根据用户想要的选项数量将选项添加到选项菜单,我没有包括用户输入部分,因为它不是解决问题所必需的。我希望选项菜单中的所有选项都调用 class optionshow 但由于某种原因我无法让它工作请帮助。 这是代码,感谢您提前提供帮助。

import tkinter as tk
root = tk.Tk()
root.geometry('1000x600')

class optionshow:
    def __init__(self,p):
        self.p = p.get()
        print(self.p)

option = tk.StringVar()
option.set('Select')
optionmenu = tk.OptionMenu(root, option, 'Select', command=lambda: optionshow(option))
optionmenu.place(x=350, y=20)

choices = ('12345')
for choice in choices:
    optionmenu['menu'].add_command(label=choice, command=tk._setit(option, choice))

root.mainloop()

您仅为 'Entry' 选项实例化 class(并且不正确)。为什么不采用不同的方法并在创建菜单时一次添加所有选项:

import tkinter as tk
root = tk.Tk()
root.geometry('1000x600')

class optionshow():
    def __init__(self,p):
        self.p = p.get()
        print(self.p)

option = tk.StringVar(root)
option.set('Select')
choices = ('12345')
optionmenu = tk.OptionMenu(root, option, 'Select', *choices, command=lambda x: optionshow(option))
optionmenu.place(x=350, y=20)

root.mainloop()

请注意 command=lambda 部分中的必要更正。