How can I include static text in a StringVar() and still have it update to variable changes?

10,426

A StringVar does not bind with a Python name (what you'd call a variable), but with a Tkinter widget, like this:

a_variable= Tkinter.StringVar()
an_entry= Tkinter.Entry(textvariable=a_variable)

From then on, any change of a_variable through its .set method will reflect in the an_entry contents, and any modification of the an_entry contents (e.g. by the user interface) will also update the a_variable contents.

However, if that is not what you want, you can have two (or more) references to the same StringVar in your code:

var1= var2= Tkinter.StringVar()
var1.set("some text")
assert var1.get() == var2.get() # they'll always be equal
Share:
10,426
Admin
Author by

Admin

Updated on June 05, 2022

Comments

  • Admin
    Admin almost 2 years

    I would like to create a StringVar() that looks something like this:

    someText = "The Spanish Inquisition" # Here's a normal variable whose value I will change
    

    eventually

    TkEquivalent = StringVar() # and here's the StringVar()
    
    TkEquivalent.set(string(someText)) #and here I set it equal to the normal variable. When someText changes, this variable  will too...
    

    HOWEVER:

    TkEquivalent.set("Nobody Expects " + string(someText))
    

    If I do this, the StringVar() will no longer automatically update! How can I include that static text and still have the StringVar() update to reflect changes made to someText?

    Thanks for your help.