发布时间:2018-06-01 17:32:33编辑:Run阅读(3541)
Entry 用来输入单行文本
示例:
import tkinter as tk root = tk.Tk() tk.Entry(root, text='input >>>').pack() root.mainloop()
效果:
上面的代码目的是创建一个Entry对象,并在Entry上显示'input >>>',运行此代码,并没有看到文本的显示,由此可知于Lable和Button不同,Entry的text属性不可以设置Entry的文本
在Entry中设定初始值,使用textvariable将变量与Entry绑定
示例:
import tkinter as tk root = tk.Tk() st = tk.StringVar() entry = tk.Entry(root, textvariable=st) st.set('www.py3study.com') entry.pack() root.mainloop()
效果:
上面的例子中将变量st与Entry绑定,然后将st的值设置为'www.py3study.com',程序运行时的初始值便设置了
设置为只读Entry,不能更改
Entry的另一个比较有用的属性,设置为只读,不允许用户对它的值改变.
设置state属性为'readonly'
示例:
import tkinter as tk root = tk.Tk() st = tk.StringVar() entry = tk.Entry(root, textvariable=st) st.set('www.py3study.com') entry.pack() entry['state'] = 'readonly' root.mainloop()
效果:
实际上Entry的属性值可以使用的也为normal/readonly/disabled,
normal 正常
readonly 只读
disabled 禁用
代码:
import tkinter as tk root = tk.Tk() st = tk.StringVar() entry1 = tk.Entry(root, textvariable=st) entry2 = tk.Entry(root, textvariable=st) entry3 = tk.Entry(root, textvariable=st) st.set('www.py3study.com') entry1['state'] = 'normal' entry2['state'] = 'readonly' entry3['state'] = 'disabled' entry1.pack() entry2.pack() entry3.pack() root.mainloop()
效果:
设置为密码输入框
将Entry作为一个密码输入框来使用,即不显示用户输入的内容值,用特定符号来代替,使用属性show来指定
示例:
import tkinter as tk root = tk.Tk() st = tk.StringVar() entry = tk.Entry(root, textvariable=st) st.set('请输入密码') entry.pack() # 使用*来显示输入的内容,如果喜欢可以改为其它字符 entry['show'] = '*' # 分别使用*#$显示输入的文本内容 for i in ['*', '#', '$']: e = tk.StringVar() entry = tk.Entry(root, textvariable=e) e.set('password') entry.pack() entry['show'] = i root.mainloop()
效果:
验证输入的内容是否符合要求
使用validate来校验输入的内容
示例:
import tkinter as tk def text(content): # 光标失去时,这个函数就会执行 if content == 'password': print('正确') print(content) return True else: print('错误') print(content) return False def main(): root = tk.Tk() st = tk.StringVar() # 需要用root.register将函数包装一下,必要的 test_cmd = root.register(text) # %P表示 当输入框的值允许改变,该值有效,该值为当前文本框内容 entry = tk.Entry(root, textvariable=st, validate='focusout', validatecommand=(test_cmd, '%P')) entry.pack() root.mainloop() if __name__ == '__main__': main()
效果:
还有其他的属性 fg/bg/relief/width/height/justify/state 使用方法与 Button 相同,不再举例
上一篇: tkinter -- button2
47618
46016
36922
34490
29100
25745
24582
19728
19270
17767
5582°
6168°
5704°
5760°
6719°
5499°
5502°
6004°
5976°
7307°