无法复制Tkinter条目的值

时间:2011-04-05 02:20:09

标签: 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')

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

getts = search.get()

Admin.mainloop()

other = getts

print other

但“其他”不会继承条目中的文字请帮助。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

这样的东西
Admin.protocol("WM_DELETE_WINDOW", SomeFunctionWhichSetsGetts)

或者更好(仔细阅读链接的帖子)使用Entry方法创建destroy()的子类,为您设置getts