文本框Entry

简介: tkinter GUI
文本框基本概念

单行的文本框,是用于输入的最基本Widget控件,可以使用它输入单行字符串,如果所输入的字符串长度大于文本框的宽度,所输入的文字会自动隐藏造成部分内容无法显示。

文本框Entry限定是单行文字,如果想要处理多行文字需使用Widget控件中的Text

Entry(父对象,options,...)

Entry( )方法的第一个参数是父对象,表示这个文本框将建立在哪一个窗口内。

options参数
  1. bg或background:背景色彩
  2. borderwidth或bd:边界宽度默认是2像素
  3. command:当用户更改内容时,会自动执行此函数
  4. cursor:当鼠标光标在复选框上时的光标形状
  5. exportselection:如果执行选取时,所选取的字符串会自动输出至剪贴板,如果想要避免,可以设置exportselection=0
  6. fg或foreground:前景色彩
  7. font:字形
  8. height:高,单位是字符高
  9. highlightbackground:当文本框取得焦点时的背景颜色
  10. highlightcolor:当文本框取得焦点时的颜色
  11. justify:当含多行文字时,最后一行的对齐方式
  12. relief:默认是relief=FLAT,可由此控制文字外框
  13. selectbackground:被选取字符串的背景色彩
  14. selectborderwidth:选取字符串时的边界宽度,预设是1
  15. selectfroeground:被选取字符串的前景色彩
  16. show:显示输入字符,例如,show='*'表示显示星号,常用于输入密码字段
  17. state:输入状态,默认是NORMAL表示可以输入,DISABLE则表示无法输入
  18. textvariable:文字变量
  19. width:宽,单位是字符宽
  20. xscrollcommand:在x轴使用滚动条

例子

建立标签和文本框,输入姓名和地址

from tkinter import *
root = Tk()
root.title("demo")
nameL = Label(root,text="Name")
addressL= Label(root,text="Address")
nameE = Entry(root)
addressE = Entry(root)
#布局
nameL.grid(row=0)
addressL.grid(row=1)
nameE.grid(row=0,column=1)
addressE.grid(row=1,column=1)
root.mainloop()

grid(row=0),在没有设置“column=x”的情况下,系统将自动设置“column=0”

使用show隐藏字符

show参数设置隐藏输入字符,常被应用于密码的输入控制

当输入密码时所输入的字符将隐藏并用“*”字符

from tkinter import *
root = Tk()
root.title("demo")
nameL = Label(root,text="Name")
pwdL= Label(root,text="Pwd")
nameE = Entry(root)
pwdE = Entry(root,show="*")
#布局
nameL.grid(row=0)
pwdL.grid(row=1)
nameE.grid(row=0,column=1)
pwdE.grid(row=1,column=1)
root.mainloop()

get()方法

获得目前Entry的字符串内容

Widget控件有一个常用方法Quit,执行此方法时Python Shell窗口的程序将结束,但是此窗口应用程序继续运行。

例子

  1. Login和Quit功能按钮
  2. 单击Login功能按钮,列出所输入的Account和Password
  3. 单击Quit按钮,则Python Shell窗口中程序执行结束,但是屏幕上仍可以看到此应用窗口
from tkinter import *
def printInfo():
    print("Account: %s\r\nPwd: %s"%(accountE.get(),pwdE.get()))
root = Tk()
root.title("demo")
accountL = Label(root,text="Account")
pwdL= Label(root,text="Pwd")
accountE = Entry(root)
pwdE = Entry(root,show="*")
loginbtn = Button(root,text="Login",command=printInfo)
quitbtn = Button(root,text="Quit",command=root.quit)
#布局
accountL.grid(row=0)
pwdL.grid(row=1)
accountE.grid(row=0,column=1)
pwdE.grid(row=1,column=1)
loginbtn.grid(row=2,column=0,sticky=W,pady=5,padx=5)
quitbtn.grid(row=2,column=1,sticky=E,pady=5,padx=5)
root.mainloop()
insert()方法

insert(index,s)方法在Widget的Entry控件中插入字符串,字符串会插入在index位置

可以使用这个方法为文本框建立默认的文字,通常会将它放在Entry( )方法建立完文本框后

accountE = Entry(root)
pwdE = Entry(root,show="*")
accountE.insert(0,"wkk") #默认内容
pwdE.insert(0,"wkk")     #默认内容

delete()方法

delete(first,last=None) 方法删除Entry内的从第first字符到第last-1字符间的字符串

删除整个字符串可以使用delete(0,END)

accountE.delete(0,END) # 删除所有内容
pwdE.delete(0,END)
例子:计算
eval()函数介绍

该函数可以直接传回字符串数学表达式的计算结果

result = eval(expression) # expression是字符串
demo
from tkinter import *
def cal():
    out["text"] =  "结果: " + str(eval(equ.get()))
root = Tk()
root.title("calc")
label = Label(root,text="请输入数学表达式")
equ = Entry(root)
btn = Button(root,text="计算", command=cal)
out = Label(root)
label.pack()
equ.pack(pady=5)
out.pack()
btn.pack(pady=5)
root.mainloop()
相关文章
|
5月前
|
人工智能 监控 Cloud Native
架构级拆解:AI数字人与数字员工的核心差异,玄晶引擎云原生实践启示
本文揭示AI数字人与AI数字员工的本质差异:前者仅为可视化交互组件,后者是具备业务闭环能力的云原生智能体。基于玄晶引擎与阿里云PAI实测,从架构、系统对接到弹性部署,解析如何实现“交互→决策→执行”全流程自动化,助力开发者精准选型,避免落地陷阱。
454 11
|
5月前
|
人工智能 自然语言处理 安全
2025AI数字人企业厂商新榜单发布与全面综合对比分析选择指南
解码数字人企业TOP榜单,透视技术革新与产业未来。从像衍科技的技术突破到阿里、华为、腾讯等巨头布局,十大企业引领AI与元宇宙融合新赛道。涵盖虚拟主播、工业数字孪生、虚拟偶像等多元场景,展现数字人在电商、教育、医疗、政务等领域的深度应用。通过全栈自研技术、多模态交互与轻量化部署,数字人正实现24小时智能服务,推动产业降本增效,重塑未来生态格局。
|
机器学习/深度学习 资源调度 自然语言处理
不同类型的循环神经网络结构
【8月更文挑战第16天】
461 0
|
机器学习/深度学习 人工智能 自然语言处理
|
存储
十六进制是什么
【8月更文挑战第9天】 十六进制是什么
3691 1
|
Web App开发 安全 网络安全
Chrome您的连接不是私密连接解决办法--一个比较实用的技巧分享
Chrome您的连接不是私密连接解决办法--一个比较实用的技巧分享
2521 0
|
数据可视化 计算机视觉 Python
【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示(2)
【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示
|
存储 人工智能 自然语言处理
论文介绍:Mamba:线性时间序列建模与选择性状态空间
【5月更文挑战第11天】Mamba是新提出的线性时间序列建模方法,针对长序列处理的效率和内存问题,采用选择性状态空间模型,只保留重要信息,减少计算负担。结合硬件感知的并行算法,优化GPU内存使用,提高计算效率。Mamba在多种任务中展现出与Transformer相当甚至超越的性能,但可能不适用于所有类型数据,且硬件适应性需进一步优化。该模型为长序列处理提供新思路,具有广阔应用前景。[论文链接](https://arxiv.org/abs/2312.00752)
678 3
|
Linux API 开发者
Python系统编程高手进阶:跨平台兼容性?小菜一碟💪
【8月更文挑战第4天】深入Python系统编程,跨平台兼容性至关重要。Python作为解释型语言,代码以.py文件形式存在,通过不同操作系统上的Python解释器执行,实现跨平台运行。处理文件路径时,`os.path`模块提供跨平台方法如`os.path.join`,智能解决路径差异。系统调用方面,`subprocess`模块封装底层API差异,统一接口调用外部程序。此外,第三方库如pywin32、pyzmq、Pillow等进一步增强跨平台能力,使开发者轻松应对挑战,成为Python系统编程专家。
462 0

热门文章

最新文章