这是我的下面的代码:
from tkinter import *
login = Tk()
username_1 = Entry()
username_1.pack(side=TOP)
input_username = login.username_1.get("1.0", END)
username = input_username
loginInfo = {"user1": "blue", "user2": "yellow", "user3": "green"}
if username in loginInfo:
print('Username correct!')
login.mainloop()
这是我的错误:
'AttributeError: '_tkinter.tkapp' object has no attribute 'username_1'':
答案 0 :(得分:1)
创建窗口小部件时,将创建根窗口的子级。但是,这些子级不是根窗口的属性。因此,login.username_1
无效,就像错误告诉您一样。
在这种特定情况下,小部件就是username_1
(例如:input_username = username_1.get("1.0", END)
)。但是,由于以下原因,即使如此也不起作用:
get
方法不带参数。您需要执行username_1.get()
。get
,这要早于用户有机会输入任何内容。使用GUI工具包,您无法想到程序从上到下线性运行。取而代之的是,您将事情设置为最初出现,然后需要编写对事件进行响应的功能,例如按键和单击按钮。例如,您可能想创建一个带有标签“ Login”的按钮,该按钮调用一个函数来检查有效的凭据。您将在该函数内调用get()
方法。
答案 1 :(得分:0)
能否请您提供有关代码应该执行的操作的信息?
如果您只想避免此错误,请更改第6行:
input_username = username_1.get()