Python中如何获取输入框Entry输入的内容并输出

如题所述

可以使用StringVar()对象来完成,把Entry的textvariable属性设置为StringVar(),再通过StringVar()的get()和set()函数可以读取和输出相应内容,以下为测试代码(python3.x):

from tkinter import *

def submit():
   print(u.get())
   p.set(u.get())

root = Tk()
root.title("测试")
frame = Frame(root)
frame.pack(padx=8, pady=8, ipadx=4)
lab1 = Label(frame, text="获取:")
lab1.grid(row=0, column=0, padx=5, pady=5, sticky=W)

#绑定对象到Entry

u = StringVar()
ent1 = Entry(frame, textvariable=u)
ent1.grid(row=0, column=1, sticky='ew', columnspan=2)
lab2 = Label(frame, text="显示:")
lab2.grid(row=1, column=0, padx=5, pady=5, sticky=W)
p = StringVar()
ent2 = Entry(frame, textvariable=p)
ent2.grid(row=1, column=1, sticky='ew', columnspan=2)
button = Button(frame, text="登录", command=submit, default='active')
button.grid(row=2, column=1)
lab3 = Label(frame, text="")
lab3.grid(row=2, column=0, sticky=W)
button2 = Button(frame, text="退出", command=quit)
button2.grid(row=2, column=2, padx=5, pady=5)

#以下代码居中显示窗口

root.update_idletasks()
x = (root.winfo_screenwidth() - root.winfo_reqwidth()) / 2
y = (root.winfo_screenheight() - root.winfo_reqheight()) / 2
root.geometry("+%d+%d" % (x, y))
root.mainloop()

效果如下:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-14
from Tkinter import *
var=StringVar()
root=Tk()
Entry(root,textvariable=var) #设置输入框对应的文本变量为var
print(var.get())   #var.get()获取输入框的内容
root.mainloop()

追问

编译器提示有错

追答def printentry():
    print var.get()
from Tkinter import *
root=Tk()
var=StringVar()
Entry(root,textvariable=var).pack() #设置输入框对应的文本变量为var
Button(root,text="print entry",command=printentry).pack()
root.mainloop()

追问

这个OK了,那能不能把输入的内容通过标签的形式显示出来?或者在另外一个输入框里面输出刚才输入的内容?

追答def printentry():
    var2.set(var1.get())
from Tkinter import *
root=Tk()
var1=StringVar()
Entry(root,textvariable=var1).pack()
Button(root,text="print entry",command=printentry).pack()
var2=StringVar()
Label(root,textvariable=var2).pack()
root.mainloop()

将标签的texvariable设为另一个StringVar,然后将此StringVar的内容set为从Entry对应的StringVar   get得到的内容

本回答被提问者采纳
相似回答