按索引设置Python选项菜单

按索引设置Python选项菜单,python,tkinter,tk,optionmenu,Python,Tkinter,Tk,Optionmenu,我试图通过选项的索引设置OptionMenu中的值,而不是使用实际的选项值本身 例如,如果我的选项菜单有选项[“一”、“二”、“三”],我希望能够通过编写my\u Option\u Menu.set(选项[0]),而不是my\u Option\u Menu.set(“一”) OptionMenu由一个列表动态填充,具体取决于另外两个OptionMenu的设置,这就是为什么我想按索引而不是实际值引用选项。OptionMenu对象是否有方法返回当前填充的选项列表,以便上面的options[0]方法可

我试图通过选项的索引设置OptionMenu中的值,而不是使用实际的选项值本身

例如,如果我的选项菜单有选项[“一”、“二”、“三”],我希望能够通过编写
my\u Option\u Menu.set(选项[0])
,而不是
my\u Option\u Menu.set(“一”)

OptionMenu由一个列表动态填充,具体取决于另外两个OptionMenu的设置,这就是为什么我想按索引而不是实际值引用选项。OptionMenu对象是否有方法返回当前填充的选项列表,以便上面的
options[0]
方法可以工作


谢谢。

最简单的方法是保留一份用于定义选项菜单的列表副本。然后可以使用索引从列表中获取值,并将其分配给关联变量

例如:

options = ["one","two","three"]
...
self.menuVar = tk.StringVar(master)
self.optionMenu = tk.OptionMenu(master, self.menuVar, *options)
...
self.menuVar.set(options[0])
另一个选项是获取与小部件关联的菜单对象,并使用菜单命令获取给定索引处的文本,并使用该命令设置变量:

value = self.optionMenu["menu"].entrycget(0, "label")
self.menuVar.set(value)

完美的第二个选择正是我想要的。谢谢