Python Tkinter Entry控件选中、修改后验证(validate)失效

Tkinter .Entry控件在选中内容或者在验证函数中编辑条目小部件时,条目小部件会自动将validate选项重置为“none”,即验证功能失效。

需要重置验证功能,示例如下:Entry中仅能输入整数

import tkinter as tk
import tkinter.messagebox

main=tk.Tk()
v1=StringVar()
v2=StringVar()

def CheckValid(input):
    
    #重置验证功能
    e1.after_idle(lambda: e1.configure(validate="key"))
    
    if input != "" :   
        try:
            int(input)#判断是否为整数
        except:
            tk.messagebox.showerror(title='Error', message='请输入整数!') 
            e1.delete(0,tk.END)
            return False
        else:
            return True
    else:
        return True

CheckValid1=main.register(CheckValid) 
e1=tkinter.Entry(main,textvariable=v1,validate="key",validatecommand=(CheckValid1,'%P'))
e1.grid(row=0, column=1)

mainloop()

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值