Tkinter教程之OptionMenu篇

''' Tkinter教程之OptionMenu篇 '''
# OptionMenu为可选菜单,与Combox功能类似。
''' 1.创建OptionMenu '''
#  -*- coding: cp936 -*-
from  Tkinter  import   *
root 
=  Tk()
=  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()
=  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()
=  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()
=  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()
=  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 ' ]
=  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
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值