Не удается скопировать значение записи Tkinter - PullRequest
0 голосов
/ 05 апреля 2011

Итак, у меня есть этот код:

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 голосов
/ 05 апреля 2011

Вы устанавливаете getts перед выполнением основного цикла.Когда вы запускаете программу и вводите что-то в поле ввода, это не меняет значение переменной, которую вы уже установили.

Если вы хотите прочитать значение поля ввода после Admin.mainloop()Для выхода из программы вам потребуется установить объект Tkinter в значение getts в ответ на какое-либо действие с графическим интерфейсом.Один из способов - обратный вызов при выходе.См. Перехват команды Tkinter «Выход», например .В вашем случае вы хотите что-то вроде

Admin.protocol("WM_DELETE_WINDOW", SomeFunctionWhichSetsGetts)

Или еще лучше (просматривая этот связанный пост далее) создайте подкласс Entry с методом destroy(), который устанавливает для вас getts.

0 голосов
/ 05 апреля 2011

Вы звоните search.get() и присваиваете результат getts - и затем присваиваете его other - до того, как на экране появится GUIИз-за этого результатом search.get() будет пустая строка, так как вы не загружаете виджет никакими данными.И поскольку getts пусто, то при присвоении other, other тоже пусто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...