【发布时间】:2020-08-09 17:12:03
【问题描述】:
我创建了一个程序,它应该将用户名和密码转储到 json 文件中
但是我在解决它时遇到了问题
请帮忙
def createAccount():
A = tk.StringVar()
B = tk.StringVar()
root1 = Tk()
root1.resizable(0, 0)
root1.title('Signup')
instruction = Label(root1, text='Please Enter new Credentials')
instruction.grid(row=0, column=0, sticky=E)
nameL = Label(root1, text='New Username: ')
pwordL = Label(root1, text='New Password: ')
nameL.grid(row=1, column=0, sticky=W)
pwordL.grid(row=2, column=0, sticky=W)
nameE = Entry(root1, textvariable=A)
pwordE = Entry(root1, textvariable=B )
nameE.grid(row=1, column=1)
pwordE.grid(row=2, column=1)
signupButton = Button(root1, text='Signup')
signupButton.grid(columnspan=2, sticky=W)
root1.mainloop()
username = A
password = B
with open('user_accounts.json', 'r+') as user_accounts:
users = json.load(user_accounts)
if username in users.keys():
print('error')
else:
users[username] = [password, "PLAYER"]
user_accounts.seek(0)
json.dump(users, user_accounts)
user_accounts.truncate()
print("success")
我尝试使用 tk.StringVar() 将用户名和密码转换为字符串
请提供任何合适的解决方案
【问题讨论】:
-
该错误是因为您尝试使用
StringVars 本身,而不是在它们上调用.get()来检索其内容。但是您在这里有一个更根本的问题 - 您在创建小部件后立即执行此操作,用户不可能输入任何内容,实际上小部件甚至在那个时候的画面。您需要稍后执行需要用户输入的所有操作,通常在指定为 Button 的command=选项的函数中。 -
请不要发布错误图片。花点时间在您的问题中复制、粘贴和格式化它。
标签: python python-3.x tkinter tk