Я пытаюсь связать переменную с виджетом записи Tkinter, способом что:
Каждый раз, когда я изменяю значение ("содержание") записи, главным образом путем ввода чего-то в него, переменной автоматически присваивают значение того, что я ввел. Без меня имеющий необходимость продвинуть кнопку "Update value" или что-то как этот сначала.
Каждый раз, когда переменная заменяется (некоторой другой частью программы), я хочу входное значение, отображенное, чтобы быть скорректированным автоматически. Я полагаю, что это могло работать через textvariable.
Я считал пример на http://effbot.org/tkinterbook/entry.htm, но точно не помогает мне для того, что я имею в виду. У меня есть чувство, что существует способ гарантировать, чтобы первое условие с использованием записи "проверило". Какие-либо идеи?
Думаю, вам нужно что-то вроде этого. В приведенном ниже примере я создал переменную myvar
и назначил ей текстовую переменную
для виджетов Label
и Entry
. Таким образом, оба связаны, и изменения в виджете Entry будут автоматически отражаться в Label.
Вы также можете установить трассировку для переменных, например писать в 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()