'''
Created on 2017年9月8日

@author: Nick
'''
'''Tkinter之Entry篇'''

#_*_coding:utf-8_*_
import tkinter as tk
from tkinter import *



if __name__ == '__main__':
    root = tk.Tk()
    root.wm_title('Entry')
    root.geometry("1800x800+120+100")         #设置窗口大小  并初始化桌面位置
    root.resizable(width = True,height = True)  #宽不可变 高可变  默认True
    

    #上面的代码目的是创建一个Entry对象,并在Entry上显示'input your text here',运行此代码,
    # 并没有看到文本的显示,由此可知与Lable和Button不同,Entry的text属性不可以设置Entry的文本    
    fram1 = Frame(root)
    Entry(fram1,text = 'Please enter your text here!').pack(side = LEFT)
    fram1.pack(side = TOP)
    
    #2、在Entry中设定初始值,使用textvariable将变量与Entry绑定
    # 变量e与Entry绑定,然后将e的值设置为'input your text here',程序运行时的初始值便设置了。
    fram2 = Frame(root)
    e = StringVar()
    entry = Entry(fram2,textvariable = e)
    e.set('Enter your text here!')
    entry.pack(side = LEFT)
    fram2.pack(side = TOP)
    
    
    #3、设置为只读Entry.
    #Entry的另一个比较有用的属性,设置为只读,不允许用户对它的值改变。
    #设置state属性为'readonly'
    fram3 = Frame(root)
    e = StringVar()
    e.set('Enter your text here!')
    # 方法1
    Entry(fram3,textvariable = e,state = 'readonly').pack(side = LEFT)
    # 方法2
    entry_one = Entry(fram3,textvariable = e)
    entry_one['state'] = 'readonly'
    entry_one.pack(side = LEFT)
    
    #实际上Entry的属性值可以使用的也为normal/disabled,'readonly'与disabled一样
    Entry(fram3,textvariable = e,state = 'normal').pack(side = LEFT)
    Entry(fram3,textvariable = e,state = 'disabled').pack(side = LEFT)    
    
    fram3.pack(side = TOP)
    
    
    #4、设置为密码输入框
    # 将Entry作为一个密码输入框来使用,即不显示用户输入的内容值,用特定符号代替。使用用属性show来指定。
    fram4 = Frame(root)
    e = StringVar()
    e.set('Enter your text here!')
    # 方法1
    Entry(fram4,textvariable = e,show = '*').pack(side = LEFT)
    # 方法2
    entry_one = Entry(fram4,textvariable = e)
    entry_one['show'] = '*'
    entry_one.pack(side = LEFT)
    
    #循环创建不同的样式显示输入的文本
    for i in ['!','@','#','$','%','……','&','*','(',')','_','+']:
        Entry(fram4,textvariable = e,show = i).pack(side = TOP)
    
    fram4.pack(side = TOP) 
    
    
    #5、验证输入的内容是否符合要求。
    # 使用validate来校验输入的内容
    # 使用validate方法来限制输入的内容
    # 这是一个有问题的例子,无法调用validateText回调函数
    
    
    
    
    #6、还有其他的属性fg/bg/relief/width/height/justify/state使用方法与Button相同,不再举例。
    fram5 = Frame(root)
    e = StringVar()
    e.set('Enter your text here!')
    # 前景色、背景色
    Entry(fram5,textvariable = e,fg = 'red').pack(side = TOP)
    Entry(fram5,textvariable = e,bg = 'yellow').pack(side = TOP)
    
    # 设置宽度
    Entry(fram5,textvariable = e,bg = 'yellow',width = 30).pack(side = TOP)
    
    # 设置relief属性文本框风格,如凹陷、凸起,值有:flat/sunken/raised/groove/ridge
    for fenge in ['flat','sunken','raised','groove','ridge']:
        Entry(fram5,textvariable = e,width = 30,relief = fenge).pack(side = TOP)
        
    
    fram5.pack(side = TOP)
  
    root.mainloop()


本文转载:CSDN博客