小白学tkinter(Entry组件)

# Entry用来输入单行文本  
'''''1.第一个Entry程序'''  
from tkinter import *  

root = Tk()  
# 创建entry  
Entry(root, text='input your text here').pack()  
# 上面的代码目的是创建一个Entry对象,并在Entry上显示'input your text here',运行此代码,并没有看到文本的显示,  
# 由此可知与Lable和Button不同,Entry的text属性不可以设置Entry的文本  

'''''2.在Entry中设定初始值,使用textvariable将变量与Entry绑定'''  
e = StringVar()  
entry = Entry(root, textvariable=e).pack()  
e.set('input your text here')  

'''''3.设置为只读Entry. 
Entry的另一个比较有用的属性,设置为只读,不允许用户对它的值改变。 
设置state属性为'readonly' 
'''  
e2 = StringVar()  
entry = Entry(root, textvariable=e2)  
#上边这句可以改为 entry = Entry(root,textvariable = e2,state = 'readonly')
e2.set('not modify')  
entry.pack()  
entry['state'] = 'readonly'  #用这个方法设置属性太笨笨了,看上边可以更加便捷
# 实际上Entry的属性值可以使用的也为#normal/active/disabled,'readonly'与disabled一样  
root.mainloop()  
'''''4.设置为密码输入框 
#将Entry作为一个密码输入框来使用,即不显示用户输入的内容值,用特定符号代替。使用用属性 
show来指定。 
'''  
from tkinter import *  
root = Tk()  
e = StringVar()  
entry = Entry(root, textvariable=e)  
e.set('input your text here')  
entry.pack()  
# 使用*来显示输入的内容,如果喜欢可以改为其它字符  
entry['show'] = '*'  
# 分别使用*#$显示输入的文本内容  
for mask in ['*', '#', '$']:  
    e = StringVar()  
    entry = Entry(root, textvariable=e)  
    e.set('password')  
    entry.pack()  
    entry['show'] = mask  
root.mainloop()  
'''''5.验证输入的内容是否符合要求。 
Entry 组件是支持验证输入内容的合法性的,比如要求输入数字,你输入了字母那就是非法。 
实现该功能,需要通过设置 validate、validatecommand 和 invalidcommand 选项。 
    一、启用验证的“开关”是 validate 选项,该选项可以设置的值有: 
focus:当 Entry 组件获得或失去焦点的时候验证 
focusin: 当 Entry 组件获得焦点的时候验证 
focusout: 当 Entry 组件失去焦点的时候验证 
key:当输入框被编辑的时候验证 
all: 当出现上边任何一种情况的时候验证 
    二、是为 validatecommand 选项指定一个验证函数,该函数只能返回 True 或 False 表示验证的结果。 
    一般情况下验证函数只需要知道输入框的内容即可,可以通过 Entry 组件的 get() 方法获得该字符串。 
    三、invalidcommand 选项指定的函数只有在 validatecommand 的返回值为 False 的时候才被调用。 
'''  
from tkinter import *
root = Tk()
def test():
    if e1.get() == '小甲鱼':
        print('正确')
        return True
    else:
        print('错误')
        e1.delete(0,END)
        return False
def test2():
    print('invalidcommand被调用了')
    return True
v = StringVar()
e1 = Entry(root,textvariable = v,validate = 'focusout',\
           validatecommand = test,invalidcommand = test2)
e2 = Entry(root)
e1.pack()
e2.pack()
mainloop()
# 还有其他的属性fg/bg/relief/width/height/justify/state使用方法与Button相同,不再举例。  
[Python学习记录--关于Tkinter Entry(文本框)的选项、方法说明,以及一些示例。](http://www.cnblogs.com/onlyfu/archive/2013/03/07/2947473.html)
-----------------------------------------------------
'''小甲鱼的例子'''
from tkinter import *
root = Tk()
Label(root,text = '账号:').grid(row = 0)
Label(root,text = '密码:').grid(row = 1)

v1 = StringVar()
v2 = StringVar()
#将变量,通常是StringVar绑定到textvariable上
e1 = Entry(root,textvariable = v1)
#将Entry作为一个密码输入框来使用,即不显示用户输入的内容值,用特定符号(这个符号可以用任意符号)代替。使用用属性show来指定,。 
e2 = Entry(root,textvariable = v2,show = '*')
e1.grid(row = 0,column = 1,padx = 10,pady = 5)
e2.grid(row = 1,column = 1,padx = 10,pady = 5)
#测试代码,不要管他,呵呵
def show():
    print(e1.get())
    print(e2.get())
    e1.delete(0,END)
    e2.delete(0,END)

Button(root,text = '提交',width = 10,command = show)\
                 .grid(row = 3,column = 0,sticky = W,padx = 10,pady = 5)#sticky选项控制网格管理器中组件的位置
Button(root,text = '退出',width = 10,command = root.quit)\
                 .grid(row = 3,column = 1,sticky = E,padx = 10,pady = 5) 
root.mainloop()
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值