从OptionMenu获取所有选项的列表

时间:2016-03-09 13:35:29

标签: python tkinter optionmenu

我想从tkinter中的OptionMenu小部件中获取所有选项的列表,如下所示:

import tkinter

root = tkinter.Tk()

var = tkinter.StringVar(root)
var.set('OptionMenu')
optionMenu = tkinter.OptionMenu(root, var, 'foo1', 'foo2')
optionMenu.pack()

listOfAllOptions = optionMenu.getOptions()
# listOfAllOptions == ['foo1', 'foo2']

root.mainloop()

是否有实现这一目标的功能? 如果不是什么是解决方法?

1 个答案:

答案 0 :(得分:5)

您可以获得与optionmenu相关联的菜单(例如:optionMenu["menu"]),然后您可以使用菜单方法来获取项目。它需要几行代码。但老实说,最简单的方法是将值放在附加到窗口小部件的列表中(例如:optionMenu.items = the_list_of_values

如果你想从实际的小部件中提取数据,你可以这样做:

menu = optionMenu["menu"]
last = menu.index("end")
items = []
for index in range(last+1):
    items.append(menu.entrycget(index, "label"))
print "items:", items
相关问题