我在python中有一个tkinter输入框,但是我无法从它的输入中获取代码?

时间:2018-07-05 12:42:32

标签: python tkinter tkinter-entry

这是我的下面的代码:

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'':

2 个答案:

答案 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()