tkinter第四章 输入框,校对
#最简单的输入框
import tkinter as tk root = tk.Tk() e = tk.Entry(root)#输入框的类
e.pack() e.delete(0,tk.END)#把输入框的内容清空
e.insert(0,"默认文本..")#默认内容 tk.mainloop()


import tkinter as tk #输入框
root = tk.Tk() tk.Label(root,text="网址: ").grid(row=0,column=0)#位于第0行,第0列
tk.Label(root,text="作者: ").grid(row=1,column=0)#位于第1行,第0列 e1 = tk.Entry(root)
e2 = tk.Entry(root)
e1.grid(row=0,column=1,padx=10,pady=5)#位于第0行,第1列
e2.grid(row=1,column=1,padx=10,pady=5)#位于第1行,第1列 def show():
print("作品:%s" %e1.get())
print("作者:%s" %e2.get()) tk.Button(root,text="获取信息",width=10,command=show)\
.grid(row=2,column=0,sticky = tk.W)
tk.Button(root,text="退出",width=10,command=root.quit)\
.grid(row=2,column=1,sticky = tk.E) tk.mainloop()

#密码输入框 import tkinter as tk root = tk.Tk() tk.Label(root,text="账号: ").grid(row=0,column=0)#位于第0行,第0列
tk.Label(root,text="密码: ").grid(row=1,column=0)#位于第1行,第0列 v1 = tk.StringVar()
v2 = tk.StringVar() e1 = tk.Entry(root,textvariable=v1)
e2 = tk.Entry(root,textvariable = v2,show="*")#show:以*显示 e1.grid(row=0,column=1,padx=10,pady=5)#位于第0行,第1列
e2.grid(row=1,column=1,padx=10,pady=5)#位于第1行,第1列 def show():
print("账号:%s" %e1.get())
print("密码:%s" %e2.get()) tk.Button(root,text="获取信息",width=10,command=show)\
.grid(row=2,column=0,sticky = tk.W)
tk.Button(root,text="退出",width=10,command=root.quit)\
.grid(row=2,column=1,sticky = tk.E) tk.mainloop()

import tkinter as tk root = tk.Tk() def test():
if e1.get()=="我很帅":
print("正确")
return True
else:
print("错误")
e1.delete(0,tk.END)#清空列表
return False def test2():
print("我只有在错误的情况下才会调用")
return True v = tk.StringVar() #validate 中的focusout是当移开光标的时候,触发test进行校对, validatecommand 校对函数
e1 = tk.Entry(root,textvariable=v,validate="focusout",validatecommand=test,\
invalidcommand=test2) e2 = tk.Entry(root)
e1.pack(padx=10)
e2.pack(padx=10) tk.mainloop()


import tkinter as tk root = tk.Tk() v1 = tk.StringVar()
v2 = tk.StringVar()
v3 = tk.StringVar() def test(content):
return content.isdigit()#数字会返回true 非数字返回false testCMD = root.register(test)
#validate触发方法是关键字触发
e1 = tk.Entry(root,width=10,textvariable=v1,validate='key',\
validatecommand = (testCMD,"%P")).grid(row=0,column=0) tk.Label(root,text="+").grid(row=0,column=1)#存放+号的 e2 = tk.Entry(root,width=10,textvariable=v2,validate='key',\
validatecommand = (testCMD,"%P")).grid(row=0,column=2) tk.Label(root,text="=").grid(row=0,column=3)#存放=号的 e3 = tk.Entry(root,textvariable=v3,state="readonly").grid(row=0,column=4)#只能读取 def calc():
result = int(v1.get())+int(v2.get())
v3.set(str(result)) tk.Button(root,text="计算结果",command=calc).grid(row=1,column=2) tk.mainloop()

tkinter第四章 输入框,校对的更多相关文章
- 第四章 JavaScript操作DOM对象
第四章 JavaScript操作DOM对象 一.DOM操作 DOM是Document Object Model的缩写,即文档对象模型,是基于文档编程的一套API接口,1988年,W3C发布了第一级 ...
- 第四章、前端之BOM和DOM
目录 第四章.前端之BOM和DOM 一.解释BOM和DOM 二.window对象 三.window子对象 四.弹出框 五.计时相关 六.HTML的DOM树 七.查找元素 八.节点操作 九.JS操作CS ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- 《Linux内核设计与实现》读书笔记 第四章 进程调度
第四章进程调度 进程调度程序可看做在可运行太进程之间分配有限的处理器时间资源的内核子系统.调度程序是多任务操作系统的基础.通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章 ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (21) -----第四章 ASP.NET MVC中使用实体框架之在页面中创建查询和使用ASP.NET URL路由过虑
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 4.2. 构建一个搜索查询 搜索数据是几乎所有应用的一个基本功能.它一般是动态的,因 ...
- 精通Web Analytics 2.0 (6) 第四章:点击流分析的奇妙世界:实际的解决方案
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第四章:点击流分析的奇妙世界:实际的解决方案 到开始实际工作的时候了.哦耶! 在本章中,您将了解到一些最重要的网络分析报告,我将 ...
- Java语言程序设计(基础篇) 第四章 数学函数、字符和字符串
第四章 数学函数.字符和字符串 4.2 常用数学函数 方法分三类:三角函数方法(trigonometric method).指数函数方法(exponent method)和服务方法(service m ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
随机推荐
- ABP+AdminLTE+Bootstrap Table权限管理系统第八节--ABP错误机制及AbpSession相关
上一节我们讲到登录逻辑,我做的登录逻辑很简单的,我们来看一下abp module-zero里面的登录代码. #region Login / Logout public ActionResult Log ...
- JVM学习笔记五:虚拟机类加载机制
类加载生命周期 类加载生命周期:加载.验证.准备.解析.初始化.使用.卸载 类加载或初始化过程什么时候开始? 遇到new.getstatic.putstatic或invokestatic这4条字节码指 ...
- Java 架构师之路(1)
本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走着弯路.如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的程序员 ...
- ASP.NET Core 源码学习之 Logging[4]:FileProvider
前面几章介绍了 ASP.NET Core Logging 系统的配置和使用,而对于 Provider ,微软也提供了 Console, Debug, EventSource, TraceSource ...
- 一步一步学MySQL-日志文件
错误日志 错误日志不用多说,记录了mysql运行过程中的错误信息,当出现问题时,我们可以通过错误日志查找线索. 慢查询日志 可以通过参数long_query_time来设置时间,当sql语句执行超过指 ...
- My first_leetcode_Rever Ingeter 数字翻转java实现(办法集合)
7. Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, ...
- 【NO.11】Jmeter - 构建1个可供Linux使用的Jmeter测试脚本 - 共3个步骤
在Linux使用Jmeter做性能测试需要4个前提条件,这4个前提条件已经在之前的文档里提到了,重复一下加深印象: (1) 在本地已安装xshell 参考<SecureCRT-转换密钥-Xshe ...
- 使用OracleDBLink进行数据库之间对象的访问操作
Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象,例如我们新建了一个数据database1,我们需要操作 ...
- 多线程(五) java的线程锁
在多线程中,每个线程的执行顺序,是无法预测不可控制的,那么在对数据进行读写的时候便存在由于读写顺序多乱而造成数据混乱错误的可能性.那么如何控制,每个线程对于数据的读写顺序呢?这里就涉及到线程锁. 什么 ...
- 接口的作用(C#)
C#中的接口(Interface)对于很多初学者来说是个很容易迷糊的东西,使用起来很简单,无非就是定义接口,接口里面包含一些属性.索引器.事件和一些没有修饰符的方法,也没有方法的具体实现代码:然后在类 ...