Python 使用与所有其他选项相同的命令将选项添加到选项菜单
嗨,我正在尝试根据用户想要的选项数量向选项菜单添加选项,我没有包括用户输入部分,因为它在解决问题时不是必需的。我想让选项菜单中的所有选项调用类Python 使用与所有其他选项相同的命令将选项添加到选项菜单,python,tkinter,optionmenu,tkinter.optionmenu,Python,Tkinter,Optionmenu,Tkinter.optionmenu,嗨,我正在尝试根据用户想要的选项数量向选项菜单添加选项,我没有包括用户输入部分,因为它在解决问题时不是必需的。我想让选项菜单中的所有选项调用类选项show,但由于某些原因,我无法使其工作,请帮助。 这是代码,谢谢您的帮助 import tkinter as tk root = tk.Tk() root.geometry('1000x600') class optionshow: def __init__(self,p): self.p = p.get()
选项show
,但由于某些原因,我无法使其工作,请帮助。
这是代码,谢谢您的帮助
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”选项实例化该类(但不正确)。为什么不在创建菜单时采用不同的方法,同时添加所有选项:
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
部分中的必要更正。command=lambda:options show(option)做什么?它调用类class options show
,这毫无意义。command
的参数不应该是class
。可以在参数命令中使用类,我已经做过很多次了,但是你为什么要调用一个类呢?我不知道你的目的是什么。非常感谢,这就是我试图做的,命令中的“x”是什么意思=lambda x:doIt可以是任何变量名。如果省略它,您将得到一条错误消息,lambda不接受任何参数。但是,您将option指定为参数,所以需要为lambda提供一个参数以获取该参数。