将文本从输入文本转换为Python tkInter中的字符串

时间:2018-07-15 18:00:17

标签: python string python-3.x user-interface tkinter

我想使用您在entry_1条目中键入的字符串,但是我什至无法打印出来。因此,当您输入并提交内容时,我想使用button001在控制台中显示它。

这是代码。

from tkinter import *

root = Tk()

label_1 = Label(root, text="Username:")
label_2 = Label(root, text="Password:")

info = StringVar()
entry_1 = Entry(root, textvariable="info")

def button001(event):
  print(str(info.get()))

entry_2 = Entry(root)

submitButton = Button(root, text="submit")

submitButton.bind("<Button-1>", button001)
submitButton.grid(row="0", column="2")

label_1.grid(row=0, sticky=E)
label_2.grid(row=1, sticky=E)

entry_1.grid(row=0, column=1)
entry_2.grid(row=1, column=1)

c  = Checkbutton(root, text="Keep me logged in.")
c.grid(columnspan=2)

root.mainloop()

1 个答案:

答案 0 :(得分:3)

这是问题所在

info = StringVar()
entry_1 = Entry(root, textvariable="info")

必须是这样:

info = StringVar()
entry_1 = Entry(root, textvariable=info)

通过这种简单的程序,您根本不需要info。您可以直接从小部件中获取值,从而消除了一个需要管理的其他对象。另外,也不需要将值转换为字符串,因为get将返回一个字符串。

例如:

entry_1 = Entry(root)
...
def button001(event):
  print(entry_1.get())

最后,您使用的按钮不正确。使用Button小部件,通常最好使用command属性而不是bind属性,除非您明确需要event对象:

def button001():
    print(entry_1.get())
...
submitButton = Button(root, text="submit", command=button001)