'''
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()
Tkinter之Entry篇
本文转载:CSDN博客