'''Tkinter教程之OptionMenu篇'''#OptionMenu为可选菜单,与Combox功能类似。'''1.创建OptionMenu'''# -*- coding: cp936 -*-from Tkinter import *root = Tk()v = StringVar(root)v.set('Python')om = OptionMenu(root,v,'Python','PHP','CPP','C','Java','JavaScript','VBScript')om.pack()root.mainloop()#显示的文本自动断行,上下行分别使用了左对齐,右对齐和居中对齐# -*- coding: cp936 -*-from Tkinter import *root = Tk()v = StringVar(root)#创建一个OptionMenu控件om = OptionMenu(root, v, 'Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript' )om.pack()root.mainloop()#OptionMenu的创建需要两个必要的参数,与当前值绑定的变量,通常为一StringVar类型;另一#个是提供可选的内容列表,由OptionMenu的变参数指定。'''2.设置OptionMenu的显示值'''#当OptionMenu与变量绑定后,直接使用变量赋值的方法即可改变当前的值# -*- coding: cp936 -*-from Tkinter import *root = Tk()v = StringVar(root)v.set('VBScript')#创建一个OptionMenu控件om = OptionMenu(root, v, 'Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript' )om.pack()print v.get()root.mainloop()#运行程序,OptionMenu默认值为"VBScript",打印出的数值也为"VBScript"#如果设置的值不包含在当前的列表中,会是什么结果?如下的代码使用"Tkinter"来测试# -*- coding: cp936 -*-from Tkinter import *root = Tk()v = StringVar(root)v.set('Tkinter')#创建一个OptionMenu控件om = OptionMenu(root, v, 'Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript' )om.pack()print v.get()root.mainloop()#程序依旧是默认值改变为Tkinter,打印结果也变为Tkinter,但Tkinter不会添加到OptionMenu的列表中,也就是说,当选择其它的选项时,Tkinter的值会丢失。'''3.打印OptionMenu的值'''# -*- coding: cp936 -*-from Tkinter import *root = Tk()v = StringVar(root)v.set('Tkinter')def printOption(event): print v.get()#创建一个OptionMenu控件om = OptionMenu(root, v, 'Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript' )om.bind('<Button-1>',printOption)om.pack()root.mainloop()#每次点击OptionMenu程序打印出上次选中的项值'''4.使用list作为OptionMenu的选项'''# -*- coding: cp936 -*-from Tkinter import *root = Tk()Lang = ['Python','PHP','CPP','C','Java','JavaScript','VBScript']v = StringVar(root)v.set('Tkinter')def printOption(event): print v.get()#创建一个OptionMenu控件,使用了apply函数om = apply(OptionMenu,(root,v) + tuple(Lang))om.bind('<Button-1>',printOption)om.pack()root.mainloop()#author: jcodeer#blog: jcodeer.cublog.cn#email: jcodeer@126.com