救救我,我的输入框没法用get返回里面的内容
我用的python3.6.6,拷贝的小甲鱼的代码,在输入完账号密码以后无法打印输入框里面的内容代码
from tkinter import *
root=Tk()
root.title("校园二手交易系统")
Label(root,text='账号:').grid(row=0,column=0)
Label(root,text='密码:').grid(row=1,column=0)
v1=StringVar()
v2=StringVar()
e1=Entry(root,textvariable=v1).grid(row=0,column=1,padx=10,pady=5)
e2=Entry(root,textvariable=v2,show='*').grid(row=1,column=1,padx=10,pady=5)
def show():
print('账号:%s' % e1.get())
print('密码:%s' % e2.get())
Button(root,text='登录',width=10,command=show).grid(row=3,column=0,sticky=W,padx=10,pady=5)
Button(root,text='退出',width=10,command=root.destroy).grid(row=3,column=1,sticky=E,padx=10,pady=5)
root.mainloop()
错误提示信息:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python36\lib\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "C:/Users/ASUS/Desktop/新建文件夹/python/3.py", line 16, in show
print('账号:%s' % e1.get())
AttributeError: 'NoneType' object has no attribute 'get'
e1=Entry(root,textvariable=v1).grid(row=0,column=1,padx=10,pady=5)
e2=Entry(root,textvariable=v2,show='*').grid(row=1,column=1,padx=10,pady=5)
布局管理器布局了组件后没有返回值,所以你赋值时候不能直接将布局后的组件赋值给变量,改成这样就好:e1=Entry(root,textvariable=v1)
e1.grid(row=0,column=1,padx=10,pady=5)
e2=Entry(root,textvariable=v2,show='*')
e2.grid(row=1,column=1,padx=10,pady=5)
完整代码:
from tkinter import *
root=Tk()
root.title("校园二手交易系统")
Label(root,text='账号:').grid(row=0,column=0)
Label(root,text='密码:').grid(row=1,column=0)
v1=StringVar()
v2=StringVar()
e1=Entry(root,textvariable=v1)
e1.grid(row=0,column=1,padx=10,pady=5)
e2=Entry(root,textvariable=v2,show='*')
e2.grid(row=1,column=1,padx=10,pady=5)
def show():
print('账号:%s' % e1.get())
print('密码:%s' % e2.get())
Button(root,text='登录',width=10,command=show).grid(row=3,column=0,sticky=W,padx=10,pady=5)
Button(root,text='退出',width=10,command=root.destroy).grid(row=3,column=1,sticky=E,padx=10,pady=5)
root.mainloop()
页:
[1]