使用与所有其他命令相同的命令向选项菜单添加选项
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
部分中的必要更正。
您好,我正在尝试根据用户想要的选项数量将选项添加到选项菜单,我没有包括用户输入部分,因为它不是解决问题所必需的。我希望选项菜单中的所有选项都调用 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
部分中的必要更正。