Python新手的一个问题 1C

写一个登陆的界面,账号密码对了就会出现一个标签,但是e2['show']='*' ,这句话报错,错误的提示是TypeError: 'NoneType' object does not support item assignment

贴出代码如下

-*- coding:utf-8 -*-

from Tkinter import *

def reg():
s1=e1.get()
s2=e2.get()
t1=len(s1)
t2=len(s2)
if s1=="1111" and s2=="2222":
c["text"]="登陆成功"
else:
c["text"]="登陆失败"
e1.delete(0,t1)
e2.delete(0,t2)

root= Tk()
root.wm_title("登陆界面")
l=Label(root,text="用户名: ")
l.grid(row=0,column=0,sticky=W)

e1=Entry(root)
e1.grid(row=0,column=1,sticky=E)

l2=Label(root,text="密码: ").grid(row=1,column=0,sticky=W)
e2=Entry(root).grid(row=1,column=1,sticky=E)
e2["show"] = '*'

b=Button(root,text="登陆",command=reg).grid(row=2,column=1,sticky=E)

c=Label(root,text=" ")
c.grid(row=3)
root.mainloop()

6个回答

e2=Entry(root).grid(row=1,column=1,sticky=E)
e2["show"] = '*'

这个e2是一个列表或者元组的对象吗
如果你的e2是一个元组对象,你这里写的估计就是得到了一个元组对象
那么元组对象的值是不能被重新赋值的。
比如你可以试验下 e = (1,2,3)
使用 e[0] = 4
你看看会报和你一样的错误信息的。

若有帮助还请采纳

SosoDefficult
SosoDefficult 我的版本是2.7的,所以在列表中没有show的属性,不过还是谢谢了
3 年多之前 回复

e2["show"]
这个show在哪里写的。

提示None Type,应该是你的e2赋值的时候,你的e2是None,而你上边的赋值应该是dict之类的,赋值前打印下e2看看

e2应该是不可变对象的。。。

你这样粘贴代码没诚意啊- -!

 #-*- coding:utf-8 -*-
from Tkinter import *
def reg():
    s1=e1.get()
    s2=e2.get()
    t1=len(s1)
    t2=len(s2)
    if s1=="1111" and s2=="2222":
        c["text"]="登陆成功"
    else:
        c["text"]="登陆失败"
    e1.delete(0,t1)
    e2.delete(0,t2)

root= Tk()
root.wm_title("登陆界面")
l=Label(root,text="用户名: ")
l.grid(row=0,column=0,sticky=W)
e1=Entry(root)
e1.grid(row=0,column=1,sticky=E)
l2=Label(root,text="密码: ").grid(row=1,column=0,sticky=W)
e2=Entry(root)
e2["show"] = '*'
e2.grid(row=1,column=1,sticky=E)
b=Button(root,text="登陆",command=reg).grid(row=2,column=1,sticky=E)
c=Label(root,text=" ")
c.grid(row=3)
root.mainloop()

e2=Entry(root).grid(row=1,column=1,sticky=E)
e2["show"] = '*'
这里错了,show属性是Entry()对象的,而不是Entry().grid()对象的

亲测有效,望采纳- -

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!