Python Can';t复制Tkinter条目的值

Python Can';t复制Tkinter条目的值,python,tkinter,Python,Tkinter,所以我有这个代码: from Tkinter import * Admin = Tk() def searches(): gett = search.get() lab = Label(frame, text='searching for ' + gett) lab.pack(side='bottom') frame = Frame(Admin) frame.pack() search = Entry(frame) search.pack(side='left') b

所以我有这个代码:

from Tkinter import *
Admin = Tk()

def searches():
    gett = search.get()
    lab = Label(frame, text='searching for ' + gett)
    lab.pack(side='bottom')
frame = Frame(Admin)
frame.pack()
search = Entry(frame)
search.pack(side='left')

button = Button(frame, text='Search', command=searches)
button.pack(side='right')

getts = search.get()

Admin.mainloop()

other = getts

print other

但是“other”不会继承条目中的文本,请帮助。

您正在调用
search.get()
并将结果分配给
getts
——然后在屏幕上显示GUI之前将其分配给
other
。因此,
search.get()
的结果将是空字符串,因为您没有用任何数据预加载小部件。由于
getts
为空,当它被分配给
other
时,
other
也为空。

在主循环执行之前设置
getts
。运行程序并在输入字段中输入内容时,不会更改已设置变量的值

如果要在
Admin.mainloop()
退出后读取输入字段的值,则必须让Tkinter对象设置
getts
的值以响应某些GUI操作。一种方法是在退出时回调。例如,见。在你的情况下,你想要

Admin.protocol("WM_DELETE_WINDOW", SomeFunctionWhichSetsGetts)

或者更好的是(进一步阅读链接文章)使用
destroy()
方法创建
Entry
的子类,该方法为您设置
getts

getts
mainloop
之前被赋值(即在您的窗口被显示之前);将
other
分配给
getts
对您没有帮助。相反,在适当的时间查看回调以获取值。