语法
Entry(父对象,options,…)
常用属性
注:此图片来源于菜鸟教程。
常用方法
1.show隐藏输入参数
from tkinter import *
class Application(Frame):
def __init__(self,master=None):
super().__init__(master)
self.master=master
self.pack()
self.createWidget()
def createWidget(self):
self.name=Label(self,text="账号").grid(row=0,column=0)
self.password=Label(self,text="密码").grid(row=1,column=0)
self.name_entry=Entry(self).grid(row=0,column=1,padx=5,pady=5)
self.password_entry=Entry(self).grid(row=1,column=1)
if __name__ == '__main__':
root=Tk()
root.geometry('300x200+200+200')
root.title('萤火虫')
root.iconbitmap('1.ico')
app=Application(master=root)
root.mainloop()
输入账号密码。
会发现密码就这样显示出来,不安全,要想以密文的形式显示出来用到show参数隐藏输入字符。
修改代码:
self.password_entry=Entry(self,show="*").grid(row=1,column=1)
这样就好多了。
发现还能这样:
只需要将show参数修改一下就行。
2.get方法的使用。
from tkinter import *
from tkinter import messagebox
class Application(Frame):
def __init__(self,master=None):
super().__init__(master)
self.master=master
self.pack()
self.createWidget()
def createWidget(self):
self.name=Label(self,text="账号").grid(row=0,column=0)
self.password=Label(self,text="密码").grid(row=1,column=0)
v1 = StringVar()
self.name_entry=Entry(self,textvariable=v1)
self.name_entry.grid(row=0,column=1,padx=5,pady=10)
v2 = StringVar()
self.password_entry=Entry(self,textvariable=v2,show="*")#textvariable绑定组件
self.password_entry.grid(row=1,column=1)
self.login_system=Button(self,text="登录",width=7,command=self.login_system)
self.login_system.grid(row=2,column=1,sticky=W,padx=5,pady=10)
self.quit_system=Button(self,text="退出",width=7,command=self.quit_system)
self.quit_system.grid(row=2,column=1,sticky=E,padx=5,pady=10)
def login_system(self):
print("账号:"+self.name_entry.get())#get方法
print("密码:"+self.password_entry.get())
messagebox.showinfo("提示:","登录成功")
def quit_system(self):
root.quit()
if __name__ == '__main__':
root=Tk()
root.geometry('300x200+200+200')
root.title('萤火虫')
root.iconbitmap('1.ico')
app=Application(master=root)
root.mainloop()
点击退出按钮就会退出该程序。
3.insert方法的使用
insert(index,s)index为插入的位置,s为插入的内容。
添加这两行代码。
self.name_entry.insert(0,"123456789")
self.password_entry.insert(0,"1111")
def createWidget(self):
self.name=Label(self,text="账号").grid(row=0,column=0)
self.password=Label(self,text="密码").grid(row=1,column=0)
v1 = StringVar()
self.name_entry=Entry(self,textvariable=v1)
self.name_entry.grid(row=0,column=1,padx=5,pady=10)
self.name_entry.insert(0,"123456789")
v2 = StringVar()
self.password_entry=Entry(self,textvariable=v2,show="*")
self.password_entry.grid(row=1,column=1)
self.password_entry.insert(0,"1111")
self.login_system=Button(self,text="登录",width=7,command=self.login_system)
self.login_system.grid(row=2,column=1,sticky=W,padx=5,pady=10)
self.quit_system=Button(self,text="退出",width=7,command=self.quit_system)
self.quit_system.grid(row=2,column=1,sticky=E,padx=5,pady=10)
自动填入默认账号和密码。
4.delete方法的使用。
delete(first,last)
def quit_system(self):
self.name_entry.delete(0,END)
self.password_entry.delete(0,END)
当点击退出按钮时会清空账号和密码。
5.eval()方法
from tkinter import *
class Application(Frame):
def __init__(self,master=None):
super().__init__(master)
self.master=master
self.pack()
self.createWidget()
def createWidget(self):
self.label=Label(self,text="输入数学表达式").grid(row=0,column=0)
v1 = StringVar()
self.entry=Entry(self,textvariable=v1)
self.entry.grid(row=0,column=1,padx=5,pady=10)
self.system=Button(self,text="开始计算",width=7,command=self.system)
self.system.grid(row=3,column=1,sticky=W,padx=5,pady=10)
def system(self):
self.out=Label(self,text="计算结果为:%s"%(str(eval(self.entry.get())))).grid(row=2)
if __name__ == '__main__':
root=Tk()
root.geometry('300x200+200+200')
root.title('萤火虫')
root.iconbitmap('1.ico')
app=Application(master=root)
root.mainloop()
点击开始计算
得到结果。