我在 python 中有一个 tkinter 输入框,但我无法将它的输入输入到我的代码中?
I have a tkinter entry box in python but I can't get the input from it into my code?
下面是我的代码:
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'':
能否请您提供有关您的代码应该做什么的信息?
如果您只是想避免此错误 - 为此更改第 6 行:
input_username = username_1.get()
当您创建小部件时,您正在创建根 window 的 children。但是,这些 children 不是根 window 的 属性 。因此,login.username_1
无效,正如错误告诉您的那样。
在这种特定情况下,小部件只是 username_1
(例如:input_username = username_1.get("1.0", END)
)。但是,由于以下原因,即使这样也行不通:
- 条目的
get
方法不带参数。你需要做 username_1.get()
.
- 您在创建条目后约一毫秒调用
get
,此时用户还没有机会输入任何内容。
使用 GUI 工具包,您无法想象您的程序 运行 从上到下呈线性。相反,您将事物设置为最初出现,然后您需要编写响应按键和按钮点击等事件的函数。例如,您可能想要创建一个标签为 "Login" 的按钮,该按钮调用一个函数来检查有效凭据。您将在该函数中调用 get()
方法。
下面是我的代码:
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'':
能否请您提供有关您的代码应该做什么的信息?
如果您只是想避免此错误 - 为此更改第 6 行:
input_username = username_1.get()
当您创建小部件时,您正在创建根 window 的 children。但是,这些 children 不是根 window 的 属性 。因此,login.username_1
无效,正如错误告诉您的那样。
在这种特定情况下,小部件只是 username_1
(例如:input_username = username_1.get("1.0", END)
)。但是,由于以下原因,即使这样也行不通:
- 条目的
get
方法不带参数。你需要做username_1.get()
. - 您在创建条目后约一毫秒调用
get
,此时用户还没有机会输入任何内容。
使用 GUI 工具包,您无法想象您的程序 运行 从上到下呈线性。相反,您将事物设置为最初出现,然后您需要编写响应按键和按钮点击等事件的函数。例如,您可能想要创建一个标签为 "Login" 的按钮,该按钮调用一个函数来检查有效凭据。您将在该函数中调用 get()
方法。