我在 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() 方法。