小鱼儿学Tkinter-Entry 单行文本框
2022-07-01 本文已影响0人
小鱼儿_yzh
Entry 控件:用来输入单行文本
- 一个简单的 Entry
from tkinter import *
root = Tk()
root.geometry('200x100')
Entry(root , text = 'input your text here' ).pack(pady = 20)
root.mainloop()
简单Entry 示例
上面的代码想要创建一个 Entry 对象,并且在上面显示‘input your text here’,运行代码发现,并没有看到文本显示,由此可知与 Label 和 Button 不同,Entry 的 text 属性不可以设置 Entry 的文本。
- 在Entry中设置初值:使用textvariable 将变量与 Entry 绑定
root = Tk()
root.geometry('200x100')
e = StringVar()
entry = Entry(root , textvariable = e )
e.set('input your text here')
entry.pack(pady = 20)
root.mainloop()
设置Entry初值示例
上面的例子中将变量 e 与 Entry 绑定,然后将 e 的值设置为'input your text here',则程序运行时 Entry 就设置了初始值。点击鼠标文本不会消失。
- bind 绑定事件,单点后初始提示文字消失
from tkinter import *
root = Tk()
root.geometry('200x100')
def clear_entry(event):
e.set('')
e = StringVar()
entry = Entry(root , textvariable = e )
e.set('input your text here')
entry.pack(pady = 20)
entry.bind('<Button-1>',clear_entry)
root.mainloop()
- 设置为只读 Entry ,state属性
from tkinter import *
root = Tk()
root.geometry('200x100')
def clear_entry(event):
e.set('')
e = StringVar()
entry = Entry(root , textvariable = e )
e.set('input your text here')
entry.pack(pady = 20)
entry['state'] = 'readonly'
entry.bind('<Button-1>',clear_entry)
root.mainloop()
- 上例程序运行后能看出,文本框里的背景色为灰色,点击后文本会消失,但不能输入新的文本。
- Entry 的属性值可以使用的有:normal 、readonly 、disabled
-
readonly 与 disabled 一样的效果。
Entry设置只读属性示例
- 设置为密码输入框 ,show属性
将Entry作为一个密码输入框来使用,即不显示用户输入的内容值,用特定符号代替。使用show属性来指定。
from tkinter import *
root = Tk()
root.geometry('200x100')
def clear_entry(event):
e.set('')
e = StringVar()
entry = Entry(root , textvariable = e )
e.set('input your text here')
entry.pack(pady = 20)
entry['show'] = '*'
entry.bind('<Button-1>',clear_entry)
root.mainloop()
Entry作密码框示例
- 获取 Entry 的值
键盘响应事件,输入文本后按回车调用 get_entry
from tkinter import *
root = Tk()
root.geometry('200x100')
def clear_entry(event):
e.set('')
def get_entry(event):
print(e.get())
e = StringVar()
entry = Entry(root , textvariable = e )
e.set('input your text here')
entry.pack(pady = 20)
entry['show'] = '*'
entry.bind('<Button-1>',clear_entry)
entry.bind('<Return>',get_entry)
root.mainloop()
获取Entry值示例