【问题标题】:tkinter entry() not returning stringtkinter entry() 不返回字符串
【发布时间】:2022-12-12 20:24:54
【问题描述】:

我有几个用 tk 制作的输入框: Entry()

我需要将用户输入的内容放入一个变量中,我就是这样做的(正如我在网上找到的那样):

window = Tk()

#make entry and turn it into stringvar
entry1string = tk.StringVar
entry_1 = Entry(window,textvariable=entry1string)

#retrieve it into a variable
retrieved = entry1string.get()

这给出了以下错误:

AttributeError: 'str' object has no attribute 'get'

如何将用户在输入框中输入的字符串/值放入变量中?代码似乎就是我找到的每个示例的样子,我不明白为什么它会给我那个错误。

【问题讨论】:

  • 您没有创建 StringVar 实例,因为您的代码缺少它后面的括号。尝试:entry1string = tk.StringVar()
  • 此外,您的 Entry 小部件不会出现在屏幕上。使用任何 geometry managers。我在下面使用pack()回答

标签: python tkinter tkinter-entry


【解决方案1】:

参考这里了解Entry widgets in Tkinter

您可以做的是创建一个按钮,单击该按钮时,将检索输入框中输入的数据。

...
entry1string = tk.StringVar()
entry_1 = Entry(window,textvariable=entry1string).pack()

def retrieveData():
    #retrieve it into a variable
    retrieved = entry1string.get()
    #print the data
    print(retrieved)
    #Or output the data on the window in a Label :
    Label(window, text=retrieved).pack()

button1 = Button(window, text="PRINT", command=retrieveData).pack()

单击按钮时需要调用一个函数。您可以在命令行中打印数据,甚至可以在 GUI 窗口中输出,这是您的选择。

阅读documentation 了解更多。

【讨论】:

    【解决方案2】:

    如果我想将字符串作为返回值用于其他函数,比如使用 selenium 制作自动登录代码?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 2016-08-24
    • 2019-09-10
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    相关资源
    最近更新 更多