当前位置: 首页 > 工具软件 > Tix > 使用案例 >

python tkinter Tix.Control使用

马业
2023-12-01

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()
 类似资料: