Entry的验证
Entry组件是支持验证输入的合法性的,
比如要求输入数字,你输入了字母就是非法。
实现该功能,需要通过设置validate,validatecommand,invalidcommand选项。
1、首先,启用验证开关validate,可以设置为:
'focus':组件获得或者失去焦点时验证
'focusin':组件获得焦点时验证
'focusout':组件失去焦点时验证
'key':输入框被编辑的时候验证
'all':当出现上面任意一种情况时验证
'none':关闭验证功能,默认是这个,注意不是逻辑的None,首字母小写。
2、其次,为validatecommand选项验证函数,函数只能返回True或者False。
3、然后,invalidcommand选项指定的函数只有validatecommand函数返回为False时才会触发。
举例如下:
#在第一个输入框输入小王并通过tab键将焦点转移到第二个输入框的时候,验证功能被成功触发。
from tkinter import * master= Tk()
def makesure():
if e1.get()=='小王':
print('哈喽,恭喜恭喜!')
return True
else:
print('我晕,你是谁?!')
e1.delete(0,END)#输入错误时,删除错误文本
return False
def sb():
print('sb!') e1 = Entry(master,validate='focusout',\
validatecommand=makesure,invalidcommand=sb)
e1.pack(padx=10,pady=10) e2 = Entry(master,show='*')
e2.pack(padx=10,pady=10) mainloop()
Entry的验证的更多相关文章
- ThreadLocal原理分析与代码验证
ThreadLocal提供了线程安全的数据存储和访问方式,利用不带key的get和set方法,居然能做到线程之间隔离,非常神奇. 比如 ThreadLocal<String> thread ...
- 邮件发送 java
package com.sun.mail; import java.io.File;import java.io.IOException;import java.io.UnsupportedEncod ...
- tp框架中的一些疑点知识-8
NaN是Number对象的一个属性, 表示一个特殊值, 表示不是一个 数字, 引用/赋值时, 要使用: Number.NaN 判断 一个值是不是 NaN, 用 isNaN() 函数, 它是一个js的全 ...
- [转帖]如何禁止VirtualBox虚拟机和物理机之间的时间同步
如何禁止VirtualBox虚拟机和物理机之间的时间同步 乐者为王 2014-11-02 706 阅读 http://ju.outofmemory.cn/entry/97301 验证了下 修改注册 ...
- 重写ValidateEntity虚方法实现可控的上下文验证和自定义验证
上篇文章介绍了ValidationAttribute和IValidatableObject.Validate验证,但是这种验证还是稍微简单了,对于复杂的实体,例如:继承过来的实体.实现某接口的实体等等 ...
- EF里如何定制实体的验证规则和实现IObjectWithState接口进行验证以及多个实体的同时验证
之前的Code First系列文章已经演示了如何使用Fluent API和Data Annotation的方式配置实体的属性,比如配置Destination类的Name属性长度不大于50等.本文介绍E ...
- ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)
在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图.但是首先将修改点代码,使得发布日期属性(ReleaseDate)看上去更好.打开Models \ Movie ...
- scikit-learn一般实例之一:绘制交叉验证预测
本实例展示怎样使用cross_val_predict来可视化预测错误: # coding:utf-8 from pylab import * from sklearn import datasets ...
- Asp.Net MVC4入门指南(6):验证编辑方法和编辑视图
在本节中,您将开始修改为电影控制器所新加的操作方法和视图.然后,您将添加一个自定义的搜索页. 在浏览器地址栏里追加/Movies, 浏览到Movies页面.并进入编辑(Edit)页面. Edit(编辑 ...
随机推荐
- 1833 深坑 TLE 求解
题目描述: 大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 ...
- Redis一次数据丢失(转)
一台Redis服务器,4核,16G内存且没有任何硬件上的问题.持续高压运行了大约3个月,保存了大约14G的数据,设置了比较完备的Save参数.而就是这台主机,在一次重起之后,丢失了大量的数据,14G的 ...
- WCF配置问题(配置WCF跨域)
其它的先放一边.今天先来分享一下前段时间给公司做网站WCF服务接口的心得. 配置文件的配置问题 这里既然讨论WCF配置文件的问题,那么怎么创建的就不一一讲解了.好多博主都有提过的.所以直接分享自己开发 ...
- 极其简单的帮你理解ORM中的关联关系
ORM对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转 ...
- Beta第四天
听说
- 张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结
20162329 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 通过打书上的代码熟悉了Java编程的基本过程 教材学习中的问题和解决过程 1.因为我的虚拟机 ...
- 201621123031 《Java程序设计》第8周学习总结
作业08-集合 1.本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2.书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码 ...
- Swift 2.2 的新特性
导读:本文来自SwiftGG翻译组,作者@walkingway基于苹果Swift官方博客中Ted Kremenek所撰写的"Swift 2.2 Released!"文章进行了关于S ...
- visualVM使用jstatd和jmx连接远程jvm及遇到的问题解决
visualVM使用jstatd和jmx连接远程jvm及遇到的问题解决 JMX方式: 编辑Tomact里bin目录的catalina.sh . 在其头部加入 JAVA_OPTS=" -Dco ...
- linux系统命令学习系列-用户组管理
先复习一下上节内容: 设置密码命令passwd 用户信息修改命令usermod 用户删除命令userdel 作业:修改user1的用户id为505,家目录到admin,用户组为admin,最后删除us ...