1. Entry控件
Entry控件的作用是在键盘输入的文本信息,它的语法格式如下:
1 | my_entry = Entry(容器,可选项) |
容器即内容放入的位置,可选项和上一节我们学习提到的Button中的可选项类似, 可选择的有:
样式 | 功能 |
bg和bd | 背景颜色和边框大小 |
cursor | 光标的形状 |
font | 文本字体 |
exportselection | 文本框内容是否复制功能 |
fg | 文字颜色 |
highlightcolor | 边框高亮的颜色 |
justify | 对齐方式 |
relief | 边框样式 |
selectbackground | 选择的文本背景颜色 |
selectborderwidth | 选择的文本背景边框宽度 |
selectforeground | 选择的文字颜色 |
state | 只读或可写控制 |
textvariable | 文本框的值 |
width | 文本框宽度 |
xscrollcommand | 水平方向滚动条 |
2. Entry控件常用的方法
1) delete(first, last=None)
删除first-last中的所有内容,如果使用delete(0,END)则删除输入框的所有内容
2) get()
获取输入框内的所有内容
3) icursor(index)
移动光标到index参数的位置
4) index(index)
返回index参数对应的序号
5) insert(index, text)
把text参数中的内容插入到索引为index的位置
6) Select_clear()
清空文本框
7) xview ( index )
设置文本框链接的水平滚动条
3. Entry控件的使用
我们通过实例来使用一下Entry控件。
123456789101112131415161718192021 | import tkinter win = tkinter.Tk() Frame_one = tkinter.Frame(win) #先创建一个容器放上面存放登录 Frame_one.pack(side = 'top' ) Frame_two = tkinter.Frame(win) #再创建一个容器放中间存放密码 Frame_two.pack() Frame_three = tkinter.Frame(win) #再创建一个容器在下面存放按钮 Frame_three.pack(side = 'bottom' ) Label_one = tkinter.Label(Frame_one,text = '姓名:' ) Lable_two = tkinter.Label(Frame_two,text = '密码:' ) Entry_one = tkinter.Entry(Frame_one,bd = 5 ) Entry_two = tkinter.Entry(Frame_two,bd = 5 ) Button_one = tkinter.Button(Frame_three,text = '登录' ,activeforeground = 'red' ,activebackground = 'yellow' ,width = '7' ) Button_one.pack(side = 'left' ) Button_two = tkinter.Button(Frame_three,text = '注册' ,activeforeground = 'blue' ,activebackground = 'pink' ,width = '7' ) Button_two.pack(side = 'right' ) Label_one.pack(side = 'left' ) Entry_one.pack(side = 'right' ) Lable_two.pack(side = 'left' ) Entry_two.pack(side = 'right' ) win.mainloop() |
输出结果为:
我们首先在窗口中放置了三个容器,从上到下依次存放姓名、密码和按钮,然后再姓名后面放一个Entry控件,供我们输入姓名,在密码对应的后面放一个Enrty控件来输入密码,最后在下面放两个按钮分别提供登录和注册,最后我们把他们的位置放在左右一一对应。
我们再通过函数的绑定来测试登录信息。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | import tkinter as tk import tkinter.messagebox win = tk.Tk() frame_name = tk.Frame(win) #创建容器来存放登陆的Label(文本框)与Entry(输入框) frame_name.pack(side = "top" ) #使该容器在页面的顶部 label_name = tk.Label(frame_name, text = "Your Name : " ) label_name.pack(side = "left" ) entry_name = tk.Entry(frame_name, bd = 5 ) entry_name.pack(side = "right" ) #在容器内创建Label与Entry,并使label在左,entry在右 # 下面的同理: frame_password = tk.Frame(win) frame_password.pack() label_password = tk.Label(frame_password, text = "Your Password : " ) label_password.pack(side = "left" ) entry_password = tk.Entry(frame_password, bd = 5 ) entry_password.pack(side = "right" ) def login(): if entry_name.get() = = "qy" : if entry_password.get() = = "dotcpp" : print (tkinter.messagebox.showinfo( "login" , "Success!" )) else : print (tkinter.messagebox.showerror( "login" , "Failed!" )) entry_name.delete( 0 , "end" ) entry_password.delete( 0 , "end" ) else : print (tkinter.messagebox.showerror( "login" , "Failed!" )) entry_name.delete( 0 , "end" ) entry_password.delete( 0 , "end" ) def signin(): print (tkinter.messagebox.showerror( "signin" , "Without Code!" )) #必须先定义函数,否则点击按钮调用函数时会报函数不存在的错误 frame_button = tk.Frame(win) #创建容器以存放按钮 frame_button.pack(side = "bottom" ) #使该容器位于页面最下方 button_login = tk.Button( frame_button, text = "login" , activeforeground = "red" , activebackground = "yellow" , width = "7" , command = login # command的意思是执行已定义的函数,不可执行下文中出现的函数(未定义的函数) ) button_login.pack(side = "left" ) # 下面的同理: button_signin = tk.Button( frame_button, text = "signin" , activeforeground = "blue" , activebackground = "pink" , width = "7" , command = signin, ) button_signin.pack(side = "right" ) win.mainloop() |
输出的界面为:
当我们输入qy和dotcpp时如下:
如果输入其他内容显示如下: