3.3、单选按钮:(Radiobutton)是为了响应故乡排斥的若干单选项的单击事件以触发运行自定义函数所设的,该控件排除具有共有属性外,还具有显示文本(text)、返回变量(variable)、返回值(value)、响应函数名(command)等重要属性。响应函数名“command=函数名”的用法与Button相同,函数名最后也要加括号。返回变量variable=var通常应预先声明变量的类型var=IntVar()或var=StringVar(),在所调用的函数中方可用var.get()方法获取被选中实例的value值。例如下面:
单选按钮
from tkinter import *
defMysel():
dic= {0:'甲',1:'乙',2:'丙'}
s= "您选了" + dic.get(var.get()) + "项"lb.config(text=s)
root=Tk()
root.title('单选按钮')
lb=Label(root)
lb.pack()
var=IntVar()
rd1= Radiobutton(root,text="甲",variable=var,value=0,command=Mysel)
rd1.pack()
rd2= Radiobutton(root,text="乙",variable=var,value=1,command=Mysel)
rd2.pack()
rd3= Radiobutton(root,text="丙",variable=var,value=2,command=Mysel)
rd3.pack()
root.mainloop()
3.4、复选框:(Checkbutton) 是为了返回多个选项值的交互控件,通常不直接触发函数的执行。该控件除具有共有属性外,还具有显示文本(text)、返回变量(variable)、选中返回值(onvalue)和未选中默认返回值(offvalue)等重要属性。返回变量variable=var 通常可以预先逐项分别声明变量的类型var=IntVar() (默认)或 var=StringVar(), 在所调用的函数中方可分别调用 var.get()方法 取得被选中实例的 onvalue或offvalue值。复选框实例通常还可分别利用 select()、deselect()和 toggle() 方法对其进行选中、清除选中和反选操作。
如下的例子: 利用复选框实现,单击OK,可以将选中的结果显示在标签上。效果如下:
复选框的应用
方法:利用函数中的 if-else 分支实现多项显示
from tkinter import *
importtkinterdefrun():if(CheckVar1.get()==0 and CheckVar2.get()==0 and CheckVar3.get()==0 and CheckVar4.get()==0):
s= '您还没选择任何爱好项目'
else:
s1= "足球" if CheckVar1.get()==1 else ""s2= "篮球" if CheckVar2.get() == 1 else ""s3= "游泳" if CheckVar3.get() == 1 else ""s4= "田径" if CheckVar4.get() == 1 else ""s= "您选择了%s %s %s %s" %(s1,s2,s3,s4)
lb2.config(text=s)
root=tkinter.Tk()
root.title('复选框')
lb1=Label(root,text='请选择您的爱好项目')
lb1.pack()
CheckVar1=IntVar()
CheckVar2=IntVar()
CheckVar3=IntVar()
CheckVar4=IntVar()
ch1= Checkbutton(root,text='足球',variable = CheckVar1,onvalue=1,offvalue=0)
ch2= Checkbutton(root,text='篮球',variable = CheckVar2,onvalue=1,offvalue=0)
ch3= Checkbutton(root,text='游泳',variable = CheckVar3,onvalue=1,offvalue=0)
ch4= Checkbutton(root,text='田径',variable = CheckVar4,onvalue=1,offvalue=0)
ch1.pack()
ch2.pack()
ch3.pack()
ch4.pack()
btn= Button(root,text="OK",command=run)
btn.pack()
lb2= Label(root,text='')
lb2.pack()
root.mainloop()
3.5、列表框 与 组合框:
3.5.1、列表框:(Listbox) 可供用户单选或多选所列条目以形成人机交互。列表框控件的主要方法见下面的表:
方法功能描述
curselection()
返回光标选中项目编号的元组,注意并不是单个的整数
delete(起始位置,终止位置)
删除项目,终止位置可省略,全部清空为delete(0,END)
get(起始位置,终止位)
返回范围所含项目文本的元组,终止位置可忽略
insert(位置,项目元素)
插入项目元素(若有多项,可用列表或元组类型赋值)ÿ