AttributeError:' str'对象没有属性' get'当试图从tkinter Entry Widget获取字符串信息时

时间:2015-09-02 17:50:26

标签: python tkinter attributeerror

我一直致力于学校项目扩展的这一点代码,我似乎无法找到解决方案。到目前为止,我一直试图让新用户注册系统正常工作,并且由于此问题而停止了该程序的登录部分。这是我的代码:

def newUser():
    usernameTemp = entryNew.get()
    passwordTemp = entryNewPass.get()

    database = {}

    addFile = open("database.txt", "a")
    addFile.write(usernameTemp + "," + passwordTemp + "\n")
    addFile.close()

def userValidation():
    global entryNew
    global entryNewPass
    global valid
    fileCheck = open("database.txt", "r")
    fileCheckData = fileCheck.read()
    fileCheck.close()

    entryNew = entryNew.get()
    entryNewPass = entryNewPass.get()

    database = {}

    for line in fileCheckData.splitlines():
        if line != '':           # ignore empty lines
            (username,password) = line.split(",", 1)
            database[username] = password
            if entryNew == username:
                Error(101)
                valid = False
            if valid == True:
                newUser()
                break

这是database.txt文件:

######################,#############
testUser,password
admin,administratorPass

1 个答案:

答案 0 :(得分:1)

您在此更改了entryNewentryNewPass变量:

global entryNew
global entryNewPass

entryNew = entryNew.get()
entryNewPass = entryNewPass.get()

你声明了这些全局,所以你用一个字符串替换了具有.get()方法(一个TkInter输入框?)的对象。

为这些变量使用不同的名称:

entry = entryNew.get()

并在您的函数中使用这些新名称:

if entry == username:

您实际上并未在代码中的任何位置使用entryNewPass