Проблема заключается здесь:
print text
top.mainloop()
До вызова top.mainloop()
, text
не было определено.Только после вызова top.mainloop
пользователю предоставляется интерфейс GUI, и mainloop, вероятно, многократно повторяется, прежде чем пользователь успевает набрать текст в поле Entry
и нажать Button
.Только после нажатия кнопки вызывается recieve
(sic), и хотя она возвращает значение, это значение нигде не сохраняется после окончания recieve
.Если вы хотите напечатать text
, вы должны сделать это в функции recieve
:
from Tkinter import *
def receive():
text = E1.get()
print(text)
top = Tk()
L1 = Label(top, text="User Name")
L1.pack( side = LEFT)
E1 = Entry(top, bd =5)
E1.pack(side = RIGHT)
b = Button(top, text="get", width=10, command=receive)
b.pack()
top.mainloop()