ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

《tkinter实用教程七》tkinter ttk.Entry控件

2021-10-25 14:02:36  阅读:325  来源: 互联网

标签:控件 实用教程 tkinter ttk grid Entry main root row


tkinter ttk.Entry 输入控件

ttk.Entry 控件为用户展示一个单行的文本输入框,可以输入一个字符串值,比如名字、地址、手机号等等。

如何创建一个 ttk.Entry 对象

创建输入框对象,需要使用 ttk.Entry 类,代码使用案例如下:

from tkinter import *
from tkinter import ttk

root = Tk()
main = ttk.Frame(root)
name = ttk.Entry(main,width=12)
main.grid()
name.grid()
root.mainloop()

代码执行结果,如下图所示:

tkinter entry

如何设置并获取 ttk.Entry 控件内容

ttk.Label 控件一样,ttk.Entry 控件可以通过 textvariable 控件设置并获取其内容。

示例代码如下:

from tkinter import *
from tkinter import ttk

def  click():
    btn['text']=namestr.get()

root = Tk()
main = ttk.Frame(root)
namestr = StringVar()
namestr.set("小明") # 设置 Entry 控件内容
name = ttk.Entry(main,width=12,textvariable=namestr)
l = ttk.Label(main,width=12,textvariable=namestr)
btn = ttk.Button(main,text="Get",command=click)
main.grid()
name.grid(column=0,row=0)
l.grid(column=0,row=1)
btn.grid(column=0,row=2)
root.mainloop()

代码执行结果如下图所示:

tkinter entry 变量绑定
变量绑定
entry变量读取

修改 ttk.Entry 中的内容,ttk.Label 会同步展示其中的值,点击按钮之后,按钮中的值也变成了 ttk.Entry 中的内容。

设置并获取 ttk.Entry 值的另一种方式

除了以上通过 textvariable 的方式指定和获取 ttk.Entry 的值之外,还可以用 get() 方法获取内容,使用 insert()delete() 方法设置内容。

示例代码如下:

from tkinter import *
from tkinter import ttk

def setvar():
    name.insert(0,"小明是个好同志")

def delvar():
    name.delete(0,1)

def getvar():
    l['text']=name.get()

root = Tk()
main = ttk.Frame(root)

name = ttk.Entry(main,width=12)
l = ttk.Label(main,width=12)
btn = ttk.Button(main,text="设置内容",command=setvar)
btn_del = ttk.Button(main,text="删除内容",command=delvar)
btn_get = ttk.Button(main,text="获取内容",command=getvar)
main.grid()
name.grid(column=0,row=0)
l.grid(column=0,row=1)
btn.grid(column=0,row=2)
btn_del.grid(column=0,row=3)
btn_get.grid(column=0,row=4)
root.mainloop()

以上代码,创建了一个可以通过点击按钮设置、修改、获取 ttk.Entry 内容的示例。

代码执行结果如下图:

tkinter内容获取
tkinter Entry 内容设置
tkinter entry 删除内容
tkinter entry 获取内容

ttk.Entry 值监控

我们经常在输入内容时验证输入内容是否合法,这就需要监听 ttk.Entry 的读写操作。

以下代码,在 ttk.Entry 被写入,被读取的时候都会触发对应的函数,执行响应的操作。

from tkinter import *
from tkinter import ttk

def written(*args):        # 变量写入时执行
    l['text']="变量被写入"

def readed(*args):         # 变量读取时执行
    l['text']="变量被读取"

def read():
    username.get()

def remove_trace():
    username.trace_remove('write',vw) # 删除追踪操作

root = Tk()
main = ttk.Frame(root)
username = StringVar()
name = ttk.Entry(main,width=12,textvariable=username)
vw = username.trace_add("write",written) # 追踪变量值的写变化
vr = username.trace_add("read",readed)   # 追踪变量值的读变化
l = ttk.Label(main)
btnread=ttk.Button(main,text="read var" ,command=read)
btn = ttk.Button(main,text="remove trace",command=remove_trace)
main.grid()
name.grid(column=0,row=0)
l.grid(column=0,row=1)
btnread.grid(column=0,row=2)
btn.grid(column=0,row=3)
root.mainloop()

代码执行结果如下图:

tkinter值追踪
tkinter变量绑定

ttk.Entry 当作密码框使用

代码如下:

from tkinter import *
from tkinter import ttk

root = Tk()
main = ttk.Frame(root)
password = StringVar()
pwd = ttk.Entry(main,textvariable=password,show="*")
main.grid()
pwd.grid(column=0,row=0)

root.mainloop()

执行结果如下:

tkinter 密码框

标签:控件,实用教程,tkinter,ttk,grid,Entry,main,root,row
来源: https://blog.csdn.net/weixin_43302112/article/details/120950769

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有