Как подключить переменную к виджету ввода?
Я пытаюсь связать переменную с виджетом ввода Tkinter таким образом, чтобы:
всякий раз, когда я изменяю значение ("содержимое") записи, главным образом, введя что-то в него, переменной автоматически присваивается значение того, что я набрал. Без необходимости нажимать кнопку "обновить значение" или что-то в этом роде.
всякий раз, когда переменная изменяется (какой-либо другой частью программы), я хочу значение записи отображается для автоматической настройки. Я считаю, что это может работать через textvariable.
Я прочитал пример на http://effbot.org/tkinterbook/entry.htm, но это не совсем помогает мне в том, что я имею в виду. У меня такое чувство, что есть способ обеспечить первое условие с помощью "validate"записи. Есть идеи?
1 ответов
Я думаю, что вы хотите что-то вроде этого. В приведенном ниже примере я создал переменную myvar
и назначил его textvariable
и Label
и Entry
виджеты. Таким образом, оба связаны, и изменения в виджете ввода будут автоматически отражаться в метке.
вы можете установить след по переменным, например, для записи в stdout.
from tkinter import *
root = Tk()
root.title("MyApp")
myvar = StringVar()
def mywarWritten(*args):
print "mywarWritten",myvar.get()
myvar.trace("w", mywarWritten)
label = Label(root, textvariable=myvar)
label.pack()
text_entry = Entry(root, textvariable=myvar)
text_entry.pack()
root.mainloop()