Tix(Tk接口扩展)模块提供了标准Tk库缺失的一组常用额外的小部件。Tix模块的Control小部件也被称为SpinBox窗口小部件,它由用来显示提示信息的一个Label组件,一个用来输入数据的Entry组件和两个的上下箭头小按钮组成,用户可以通过按两个箭头按钮调整数值或用键盘直接输入数值。用两个箭头按钮修改数据值可根据用户定义的上限和下限进行检查,用键盘直接输入数据可用属性validatecmd指定函数检查用键盘输入数据是否正确。本文尽量介绍各种属性用法,但有些属性虽然不出错,但不知为什么不能达到所希望的效果,例如width和height不能改变宽和高,属性integer不能阻止用键盘输入字符,属性labelSide在官方文件介绍是改变提示字符位置,可在左、右、上和下方,但运行前语法检查说labelsid无定义。下边例子介绍了Tix.Control的基本用法。
import tkinter.tix as Tix #导入Tkinter.tix
from tkinter.constants import * #导入常量
def getDat():
#label['text']=control.cget('value') #也可用此语句
label['text']=control['value']
def checkValue(value): #value是当前输入值,检查是否输入整数,是否大于max小于min
s=''.join(i for i in value if i in '0123456789') #去掉输入的非数字
a=int(s)
if a>20:
a=20
elif a<1:
a=1
return str(a) #Tix.Control的数值将被修改为该函数的返回值
root = Tix.Tk() #注意此句
root.title('tkinter Tix.Control使用') #设置窗口标题
root.geometry('400x300+200+200')
root.resizable(width=False,height=False) #设置窗口是否可变,宽不可变,高不可变,默认为True
label=Tix.Label(root)
label.pack(side=LEFT) #下句validatecmd指定用键盘输入字符按回车后调用的函数名,当前值为参数
control=Tix.Control(root,value=10, max=20,min=1,step=2,label='小时',validatecmd=checkValue,
width=10,height=2,integer=True) #,labelSide=RIGHT state=DISABLED
control.pack(side=TOP)
button=Tix.Button(root,text='取出数据',command=getDat).pack(side=BOTTOM)
root.mainloop()