我试图通过选项的索引在OptionMenu中设置值,而不是使用实际的选项值本身。
例如,如果我的OptionMenu有选项["一个","两个","三个"],我希望能够将其设置为& #34;一个"写My_Option_Menu.set(options[0])
,而不是My_Option_Menu.set("one")
OptionMenu由列表动态填充,具体取决于其他两个OptionMenus的设置,这就是为什么我想通过索引而不是实际值来引用选项。 OptionMenu对象是否有办法返回当前填充的选项列表,以便上面的options[0]
方法有效?
感谢。
答案 0 :(得分:1)
最简单的方法是保留用于定义optionmenu的列表副本。然后,您可以使用索引从列表中获取值并将其分配给关联的变量。
例如:
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)