1. # Tkinter教程之Entry篇
  2. # Entry用来输入单行文本
  3. from tkinter import *
  4.  
  5. root = Tk()
  6. # 创建entry
  7. Entry(root, text='input your text here').pack()
  8. # 上面的代码目的是创建一个Entry对象,并在Entry上显示'input your text here',运行此代码,并没有看到文本的显示,
  9. # 由此可知与Lable和Button不同,Entry的text属性不可以设置Entry的文本
  10.  
  11. '''''2.在Entry中设定初始值,使用textvariable将变量与Entry绑定'''
  12. e = StringVar()
  13. entry = Entry(root, textvariable=e).pack()
  14. e.set('input your text here')
  15.  
  16. '''''3.设置为只读Entry.
  17. Entry的另一个比较有用的属性,设置为只读,不允许用户对它的值改变。
  18. 设置state属性为'readonly'
  19. '''
  20. e2 = StringVar()
  21. entry = Entry(root, textvariable=e2)
  22. e2.set('not modify')
  23. entry.pack()
  24. entry['state'] = 'readonly'
  25. # 实际上Entry的属性值可以使用的也为normal/active/disabled,'readonly'与disabled一样
  26. root.mainloop()
  27. [python] view plain copy
  28.  
  29. '''''4.设置为密码输入框
  30. #将Entry作为一个密码输入框来使用,即不显示用户输入的内容值,用特定符号代替。使用用属性
  31. show来指定。
  32. '''
  33. from tkinter import *
  34.  
  35. root = Tk()
  36. e = StringVar()
  37. entry = Entry(root, textvariable=e)
  38. e.set('input your text here')
  39. entry.pack()
  40. # 使用*来显示输入的内容,如果喜欢可以改为其它字符
  41. entry['show'] = '*'
  42. # 分别使用*#$显示输入的文本内容
  43. for mask in ['*', '#', '$']:
  44. e = StringVar()
  45. entry = Entry(root, textvariable=e)
  46. e.set('password')
  47. entry.pack()
  48. entry['show'] = mask
  49.  
  50. root.mainloop()
  51. [python] view plain copy
  52.  
  53. '''''5.验证输入的内容是否符合要求。
  54. Entry 组件是支持验证输入内容的合法性的,比如要求输入数字,你输入了字母那就是非法。
  55. 实现该功能,需要通过设置 validate、validatecommand 和 invalidcommand 选项。
  56.  
  57. 首先启用验证的“开关”是 validate 选项,该选项可以设置的值有:
  58. focus:当 Entry 组件获得或失去焦点的时候验证
  59. focusin: 当 Entry 组件获得焦点的时候验证
  60. focusout: 当 Entry 组件失去焦点的时候验证
  61. key:当输入框被编辑的时候验证
  62. all: 当出现上边任何一种情况的时候验证
  63.  
  64. 其次是为 validatecommand 选项指定一个验证函数,该函数只能返回 True 或 False 表示验证的结果。
  65. 一般情况下验证函数只需要知道输入框的内容即可,可以通过 Entry 组件的 get() 方法获得该字符串。
  66.  
  67. 然后,invalidcommand 选项指定的函数只有在 validatecommand 的返回值为 False 的时候才被调用。
  68. '''
  69. from tkinter import *
  70.  
  71. root = Tk()
  72. e = StringVar()
  73.  
  74. def validateText():
  75. val = entry.get()
  76. if val == '654321':
  77. print("正确!")
  78. return True
  79. else:
  80. '''''
  81. 删除内容,-- 删除参数 first 到 last 范围内(包含 first 和 last)的所有内容
  82. -- 如果忽略 last 参数,表示删除 first 参数指定的选项
  83. -- 使用 delete(0, END) 实现删除输入框的所有内容
  84. '''
  85. entry.delete(0, END)
  86. return False
  87.  
  88. def test():
  89. print('invalidcommand:我被调用了')
  90. return True
  91.  
  92. entry = Entry(root, textvariable=e, validate='focusout', validatecommand=validateText,invalidcommand=test)
  93. entry.pack()
  94. Entry(root, text='sure').pack()
  95. root.mainloop()
  96. # 还有其他的属性fg/bg/relief/width/height/justify/state使用方法与Button相同,不再举例。
  97. [python] view plain copy
  98.  
  99. '''''
  100. 最后,其实 Tkinter 还有隐藏技能,不过需要冷却才能触发,请听小甲鱼一一道来......
  101. Tkinter 为验证函数提供一些额外的选项:
  102. 额外选项 含义
  103. '%d' 操作代码:0 表示删除操作;1 表示插入操作;2 表示获得、失去焦点或 textvariable 变量的值被修改
  104. '%i' 1. 当用户尝试插入或删除操作的时候,该选线表示插入或删除的位置(索引号)
  105. 2. 如果是由于获得、失去焦点或 textvariable 变量的值被修改而调用验证函数,那么该值是 -1
  106. '%P' 1. 当输入框的值允许改变的时候,该值有效
  107. 2. 该值为输入框的最新文本内容
  108. '%s' 该值为调用验证函数前输入框的文本内容
  109. '%S' 1. 当插入或删除操作触发验证函数的时候,该值有效
  110. 2. 该选项表示文本被插入和删除的内容
  111. '%v' 该组件当前的 validate 选项的值
  112. '%V' 1. 调用验证函数的原因
  113. 2. 该值是 'focusin','focusout','key' 或 'forced'(textvariable 选项指定的变量值被修改)中的一个
  114. '%W' 该组件的名字
  115.  
  116. 为了使用这些选项,你可以这样写:validatecommand=(f, s1, s2, ...)
  117.  
  118. 其中,f 就是你“冷却后”的验证函数名,s1、s2、s3 这些是额外的选项,这些选项会作为参数依次传给 f 函数。
  119. 我们刚刚说了,使用隐藏技能前需要冷却,其实就是调用 register() 方法将验证函数包装起来:
  120. '''
  121. from tkinter import *
  122.  
  123. master = Tk()
  124.  
  125. v = StringVar()
  126.  
  127. def test(content, reason, name):
  128. if content == "小甲鱼":
  129. print("正确!")
  130. print(content, reason, name)
  131. return True
  132. else:
  133. print("错误!")
  134. print(content, reason, name)
  135. return False
  136.  
  137. testCMD = master.register(test)
  138. e1 = Entry(master, textvariable=v, validate="focusout", validatecommand=(testCMD, '%P', '%v', '%W'))
  139. e2 = Entry(master)
  140. e1.pack(padx=10, pady=10)
  141. e2.pack(padx=10, pady=10)
  142.  
  143. mainloop()

  

python 之Entry的更多相关文章

  1. python from entry to abandon4

    python from entry to abandon系列的收官之作    本篇博客将会介绍<简明Python教程>的最后四章内容.并在最后附上对于本书的个人评价和下阶段自学Python ...

  2. Python Tkinter Entry(文本框)

    Python学习记录--关于Tkinter Entry(文本框)的选项.方法说明,以及一些示例. 属性(Options) background(bg) borderwidth(bd) cursor e ...

  3. python tkinter entry

    """小白随笔,大佬勿喷""" '''Entry编辑框 收集数据''' import tkinter as tk import tkinte ...

  4. python from entry to abandon3

    第十章的内容是解决问题————编写一个Python脚本.在我的电脑上因为Zip命令不能正常工作所以无法给出演示.该章给出了很有意义的编程思路,对以后学习和工作都有不错的参考意义,这部分有兴趣的同学还是 ...

  5. python from entry to abandon2

    学习Linux已经有大致两周了,依然感觉到自己仍然在运维的大门外徘徊.于是我想要找到一个在Linux之外的业余方向,可以以作为枯燥基础学习的调节.没过多久我就发现了Python可以说是钦定的选择,它作 ...

  6. python from entry to abandon

    学习Linux已经有大致两周了,依然感觉到自己仍然在运维的大门外徘徊.于是我想要找到一个在Linux之外的业余方向,可以以作为枯燥基础学习的调节.没过多久我就发现了Python可以说是钦定的选择,它作 ...

  7. python entry points 例子

    pbr的介绍不多,http://ju.outofmemory.cn/entry/156745 $ mkdir entry_test; cd entry_test; git init $ mkdir  ...

  8. Python包管理工具setuptools详解及entry point

    1.什么是setuptools? setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的.用户在使用setuptool ...

  9. Python Tkinter 文本框(Entry)

    Python Tkinter 文本框用来让用户输入一行文本字符串. 你如果需要输入多行文本,可以使用 Text 组件. 你如果需要显示一行或多行文本且不允许用户修改,你可以使用 Label 组件. 语 ...

随机推荐

  1. 关于SPFA算法的优化方式

    关于SPFA算法的优化方式 这篇随笔讲解信息学奥林匹克竞赛中图论部分的求最短路算法SPFA的两种优化方式.学习这两种优化算法需要有SPFA朴素算法的学习经验.在本随笔中SPFA朴素算法的相关知识将不予 ...

  2. 第09组 Beta版本演示

    组长博客 本组(组名)所有成员 短学号 姓名 2236 王耀鑫(组长) 2210 陈超颖 2209 陈湘怡 2228 许培荣 2204 滕佳 2205 何佳琳 2237 沈梓耀 2233 陈志荣 22 ...

  3. LeetCode 234:回文链表 Palindrome Linked List

    ​ 请判断一个链表是否为回文链表. Given a singly linked list, determine if it is a palindrome. 示例 1: 输入: 1->2 输出: ...

  4. 把ping的结果写入文件

    写一个sh文件: #!/bin/bash while true do $|>&` done 保存成ping.sh,赋可执行权限: chmod +x ping.sh 执行: sh ./pi ...

  5. 什么是IDE(集成开发环境)?

    实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件,例如: 编辑器:用来编写代码,并且给代码着色,以方便阅读: 代码提示器:输入部分代码,即可提示全部代码,加速代码的编写过程: 调试器 ...

  6. Oracle 查询(SELECT)语句(一)

    Ø  简介 本文介绍 Oracle 中查询(SELECT)语句的使用,在 SQL 中 SELECT 语句是相对内容较多的,也是相对比较复杂一点的,所以这里拿出来单独学习. 首先,我们先来理一下思路,我 ...

  7. 【07】Nginx:状态统计 / 状态码统计

    写在前面的话 在 nginx 中,有些时候我们希望能够知道目前到底有多少个客户端连接到了我们的网站.我们希望有这样一个页面来专门统计显示这些情况.这个需求在 nginx 中是可以实现的,我们可以通过简 ...

  8. Windows cmd 和 PowerShell 中文乱码问题解决

    临时方案: 在命令行下输入:chcp 65001 长期方案: 要修改注册表,自己网上搜吧

  9. 基于WEB的网上购物系统-ssh源码

    基于WEB的网上购物系统主要功能包括:前台用户登录退出.注册.在线购物.修改个人信息.后台商品管理等等.本系统结构如下:(1)商品浏览模块:        实现浏览最新商品        实现按商品名 ...

  10. Linux搭建www,mail,ftp三大DNS服务器

    ##############################-----服务器端----###############################1. 安装bind# yum install bin ...