OptionMenu类是一个辅助类,它用来创建弹出菜单,并且有一恶搞按钮显示它。它非常类似Windows上的下拉列表插件。
如果要获取当前选项菜单的值,你需要把它和一个Tkinter变量联系起来。
1.如果要创建option menu,我们需要使用OptionMenu类并传给构造函数一个变量和一系列选项值。
from Tkinter import *
master = Tk()
variable = StringVar(master)
variable.set("one") # default value
w = OptionMenu(master, variable, "one", "two", "three")
w.pack()
mainloop()
效果如下图:
单击one或者右边的button,就会弹出一个选择列表,里面是我们传给OptionMenu的选项列表,我们选择其中任意一个后,button左边的字符也会随之改变。
2.为了获得选取的选项值,我们可以使用变量的get方法。
from Tkinter import *
master = Tk()
var = StringVar(master)
var.set("one") # initial value
option = OptionMenu(master, var, "one", "two", "three", "four")
option.pack()
#
# test stuff
def ok():
print "value is", var.get()
master.quit()
button = Button(master, text="OK", command=ok)
button.pack()
mainloop()
运行效果如下:
点击Ok button,就会输出当前选择的选项值。
3.下面这个例子显示了如何从一系列选项里创建选项菜单。
from Tkinter import *
# the constructor syntax is:
# OptionMenu(master, variable, *values)
OPTIONS = [
"egg",
"bunny",
"chicken"
]
master = Tk()
variable = StringVar(master)
variable.set(OPTIONS[0]) # default value
w = apply(OptionMenu, (master, variable) + tuple(OPTIONS))
w.pack()
mainloop()
运行如下图:
这个例子使用了apply函数,将参数传递给OptionMenu。