Как подключить переменную к виджету Записи?

Я пытаюсь связать переменную с виджетом записи Tkinter, способом что:

  1. Каждый раз, когда я изменяю значение ("содержание") записи, главным образом путем ввода чего-то в него, переменной автоматически присваивают значение того, что я ввел. Без меня имеющий необходимость продвинуть кнопку "Update value" или что-то как этот сначала.

  2. Каждый раз, когда переменная заменяется (некоторой другой частью программы), я хочу входное значение, отображенное, чтобы быть скорректированным автоматически. Я полагаю, что это могло работать через textvariable.

Я считал пример на http://effbot.org/tkinterbook/entry.htm, но точно не помогает мне для того, что я имею в виду. У меня есть чувство, что существует способ гарантировать, чтобы первое условие с использованием записи "проверило". Какие-либо идеи?

8
задан dfeuer 31 August 2017 в 03:26
поделиться

1 ответ

Думаю, вам нужно что-то вроде этого. В приведенном ниже примере я создал переменную 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()
13
ответ дан 5 December 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: