Я привязал функцию обратного вызова в каждом событии нажатия клавиши. Внутри функции обратного вызова текущее содержимое метки добавляется при нажатии последней нажатой клавиши.
Единственная проблема заключается в том, когда вы нажимаете backspace, символ возврата также печатается, а удаление еще не выполняется. Другое обратное нажатие приведет к удалению символа перед напечатанным символом обратного пробела. И так далее.
Таким образом, удаление всех элементов из виджета ввода оставляет символ пробела. Я оставлю это вам.
Другим решением является использование кнопки, после чего каждый щелчок на кнопке обновит вашу метку. Но я думаю, что вы хотите автоматическое обновление каждый раз при нажатии клавиши.
Итак, я создал сценарий, который соответствует вашим требованиям.
Вот рабочий сценарий:
#!/usr/bin/env python3
from tkinter import *
from tkinter import ttk
window = Tk()
entry_1 = Entry(window, width=45)
entry_1.grid(column = 0, row = 0)
# appends current content of l_one with the new pressed key value
def callback(event):
l_one.config(text=entry_1.get() + event.char)
# binds callback to every keypress
entry_1.bind("<Key>", callback)
l_one = Label(window)
l_one.grid(column = 0, row = 1)
window.mainloop()
Успехов!
Что делает e.trace ("w", callback)? Я получаю обратный вызов ошибки не определен? –
К сожалению, забыли включить функцию обратного вызова –