2 sosodefficult SosoDefficult 于 2016.04.26 23:12 提问

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()

7个回答

fk002008
fk002008   2016.04.27 10:20

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的属性,不过还是谢谢了
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.04.26 23:19

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

CSDNXIAON
CSDNXIAON   2016.04.26 23:22

Python中的一个文件句柄问题
一个Python中的闭包问题
Python Django还是RoR,这是一个问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

wangxin6034
wangxin6034   2016.05.03 22:30

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

u010541307
u010541307   2016.05.04 02:29

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

lis_12
lis_12   2016.09.29 11:18

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

 #-*- 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()对象的

lis_12
lis_12   2016.09.29 11:22

亲测有效,望采纳- -

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!