Как передать содержимое поля ввода метке? - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть поле ввода, и когда я ввожу в него текст и нажимаю кнопку, текст должен появиться на этикетке.

Я написал следующее, но не могу привязать содержимое поля ввода к ярлыку.

from Tkinter import *

root = Tk()


e = Entry(root)
e.pack()
def get_me():
    e.get()
    print e.get()
    #e.delete(0, END)

bn = Button(root, text = "Click me", command = get_me)
bn.pack()

la = Label(root, font = "verdana 15 italic  bold", width = 20, bg = "BLUE", fg = "RED", text = get_me)
la.pack()

mainloop()

Ответы [ 2 ]

3 голосов
/ 07 декабря 2011

Параметры виджета Tkinter могут быть изменены с помощью словаря, подобного синтаксису, после того, как они инстанцирован. В случае текста свойство, которое нужно изменить, - это «текст» -

Итак, просто добавьте эту строку в ваш обратный вызов кнопки на вашем примере:

la["text"] = e.get()

В более крупной программе убедитесь, что лучше управляете именами переменных, какие переменные являются глобальными и так далее. Советуем связывать все ваши виджеты Tkinter как члены класса, чтобы они не полагались на глобальные переменные для доступа друг к другу.

0 голосов
/ 07 декабря 2011

Не думаю, что вы можете изменить текст метки Tkinter, но вы можете использовать это:

from Tkinter import *

root = Tk()

e = Entry(root)
e.pack()
def get_me():
    v.set(e.get())

bn = Button(root, text = "Click me", command=get_me)
bn.pack()

v = StringVar()
# we are creating a StringVar, assigning it to our label, and then change our StringVar
la = Label(root, font = "verdana 15 italic  bold", 
              width = 20, bg = "BLUE", fg = "RED", textvariable=v)
la.pack()

mainloop()

Для более подробной информации: effbot

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