方法 作用
delete(first,last=None) 删除文本框里面索引值
get() 获取文本框的值
icursor(index) 将光标移动到指定索引位置
index(index) 返回指定的索引值
insert(index,s) 向文本框插入值
select_adjust(index) 选中指定索引和关标所在位置之前的值
select_clear() 清空文本框
select_from(index) 设置光标的位置,通过索引值index来设置
select_present() 如果选中,返回True
select_range(start,end) 选中指定索引位置的值
select_to(index) 选中指定索引与光标之间的值

3. Entry常用属性

属性 含义
height 设置文本框的高度,高度值每加1则加一行
width 设置文本框的宽度,宽度值每加1则加一个字节
insert 文本框插入数据,可以指定插入数据的位置
delete 删除文本框中的数据,可以通过数据位置,指定删除的数据
get 获取文本框中的数据,可以通过数据位置,指定获取的数据
relief 文本框样式,设置控件显示效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。
bd 设置文本框的边框大小,值越大边框越宽
bg 设置文本框默认背景色
fg 设置文本框默认前景色,即字体颜色
font 文本字体,文字字号,文字字形。字形有overstrike/italic/bold/underline
state 文本框状态选项,状态有DISABLED/NORMAL,DISABLED状态文本框无法输入,NORMAL状态可以正常输入
highlightcolor 设置文本框点击后的边框颜色
highlightthickness 设置文本框点击后的边框大小

4. 小试牛刀

📝我们使用Entry和Text组件来实操一下:

Entry实现登陆界面如下:

创建Account和Password是Label组件

self.lab = Label(self,text = "Account")
self.lab.pack()
self.lab2 = Label(self, text="Password")
self.lab2.pack()

账号和密码需要使用Entry组件来创建

账号/密码值是动态变化的,因此我们要使用到StringVar

⭐ StringVar知识点

整体实现框架使用官方推荐的面向对象写法,使用Application(Frame)把创建组件过程封装到CreateWidgetEntry()方法里,使用构造函数对Appication实例对象初始化就创建好了

最后完整实现的代码如下

from tkinter import *
class Application(Frame):
    def __init__(self,master=None):
        # super()代表的是父类的定义,而不是父类对象
        super().__init__(master)
        self.master = master
        self.pack()
        self.CreatWidgetEntry()
    def CreatWidgetEntry(self):
        self.lab = Label(self,text = "Account")
        self.lab.pack()
        v1 = StringVar()
        self.En = Entry(self,textvariable = v1)
        self.En.pack()
        v1.set("admin")
        print(v1.get());print(self.En.get())
        self.lab2 = Label(self, text="Password")
        self.lab2.pack()
        v2 = StringVar()
        self.En2 = Entry(self, textvariable=v2,show = "*")
        self.En2.pack()
        Button(self,text = "Login",command = self.login).pack()
    def login(self):
        name =  self.En.get()
        pdw =   self.En2.get()
        print("Account:"+name)
        print("Password:" + pdw )
        print("数据校验")
        if name == "admin" and pdw =="1234567":
            messagebox.showinfo("Juejin","登陆成功")
        else:
            messagebox.showinfo("Juejin", "密码或者账号错误")
root = Tk()
root.geometry("400x130+200+300")
root.title("MyfirstAPP")
app = Application(master=root)
root.mainloop()

本期,我们学习Tkinter组件之文本输入框Entry单行文本框常用于登陆界面用户命名、密码等表单填写场景