从 OptionMenu 获取所有选项的列表
Get a list of all options from 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()
是否有实现该功能的功能?
如果不是,解决方法是什么?
您可以获得与选项菜单关联的菜单(例如: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
我想从 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()
是否有实现该功能的功能? 如果不是,解决方法是什么?
您可以获得与选项菜单关联的菜单(例如: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