【第四集】Python GUI之Entry

目录

Entry 的基本用法

Entry 的验证功能

1.Entry的validate属性

2.Entry的validatecommand 和 invalidcommand属性


Entry 的基本用法

Entry 的 show, width 属性

Label 组件的 row, column 属性

Button 组件的 sticky 属性

import tkinter
def pyEntry():
    root = tkinter.Tk()
#   选项row代表行,column代表列 
    tkinter.Label(root, text='用户:').grid(row=0, column=0)
    tkinter.Label(root, text='密码:').grid(row=1, column=0) 
 
#   在用户,密码对应的行列,设置输入框.可以设置输入框的show属性来指定字符覆盖
    e1 = tkinter.Entry(root)
    e2 = tkinter.Entry(root,show='*')
    e1.grid(row=0, column=1, padx=10, pady=5)
    e2.grid(row=1, column=1, padx=10, pady=5)
 
    def show():
        print("用户:《%s》" % e1.get())
        print("密码:%s" % e2.get())
#   点击特定按钮,所触发的事件
#   sticky参数的值和anceror的一样,用来设置按钮的方位
#   退出直接调用根窗口的quit方法
    tkinter.Button(root, text='获取信息', width=10, command=show).grid(row=3, column=0, sticky=tkinter.W, padx=10, pady=5) 
    tkinter.Button(root, text='退出', width=10, command=root.quit).grid(row=3, column=1, sticky=tkinter.E, padx=10, pady=5)
 
    tkinter.mainloop()

Entry 的验证功能

Entry 组件本身就自带了验证功能,就是可以验证输入框里面内容的合法性。

实现该功能,就要设置选项 validate, validatecommand 和 invalidcommand

1.Entry的validate属性

验证的” 开关” 是 validate 选项,该选项可以设置的值有:

2.Entry的validatecommand 和 invalidcommand属性

validatecommand 或 invalidcommand=(验证函数,参数);参数可选有:

 

import tkinter
def pyEntryAttribute():  
    master = tkinter.Tk()
#test这里是有参数的方法,参数是在validatecommand里出现的
#使用额外功能(参数)前需要冷却,其实就是调用 register() 方法将验证函数包装起来
    def test(content, reason, name):  
        if content == '查询告警':
            print('告警查询成功!')
            print(content, reason, name)
            return True
        else:
            print('指令输入错误')
            print(content, reason, name)
            e1.delete(0, tkinter.END)
            return False
 
#invalidcommand 选项指定的函数只有在 validatecommand 的返回值为 False 的时候才会被调用
    def test2():
        print('invalidatecommand设置的test2出场了') 
        
    v = tkinter.StringVar()
 
    testCMD = master.register(test)
#%v	该组件当前的validate选项的值
#%V	调用验证函数的原因该值是'focusin'、'focusout'、'key'或'focused'(textvariable选项指定的变量值被修改)中的一个
    e1 = tkinter.Entry(master, textvariable=v, validate='focusout', \
           validatecommand=(testCMD, '%P', '%v', '%W'),invalidcomman=test2)
    e2 = tkinter.Entry(master)
    
    e1.pack(padx=10, pady=10)
    e2.pack(padx=10, pady=10)
    
    tkinter.mainloop()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值