SosoDefficult
SosoDefficult
采纳率0%
2016-04-26 15:12 阅读 3.3k

Python新手的一个问题

1

写一个登陆的界面,账号密码对了就会出现一个标签,但是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条回答 默认 最新

  • fk002008 lambda-fk 2016-04-27 02:20

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

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

    若有帮助还请采纳

    点赞 3 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-04-26 15:19

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

    点赞 评论 复制链接分享
  • wangxin6034 NOTHING-BLOG 2016-05-03 14:30

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

    点赞 评论 复制链接分享
  • u010541307 天涯青云 2016-05-03 18:29

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

    点赞 评论 复制链接分享
  • lis_12 忧桑的小兔子 2016-09-29 03: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 忧桑的小兔子 2016-09-29 03:22

    亲测有效,望采纳- -

    点赞 评论 复制链接分享

相关推荐