Принимая входные данные от Tkinter - PullRequest
0 голосов
/ 08 августа 2011

Я хочу написать графический интерфейс в Tkinter, который принимает текстовые вводы от пользователя и сохраняет его в переменной Text; Я также хочу иметь возможность использовать эту переменную позже ... Вот кое-что, что я попробовал, но это не удалось:

from Tkinter import *


def recieve():
    text = E1.get()
    return 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=recieve)
b.pack()

print text

top.mainloop()

Так как мне это сделать?

1 Ответ

0 голосов
/ 08 августа 2011

Проблема заключается здесь:

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...