如何在StringVar()中包含静态文本并仍然更新为变量更改?

时间:2010-05-05 03:24:31

标签: python string text tkinter concatenation

我想创建一个看起来像这样的StringVar():

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

最终

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...

但是:

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

如果我这样做,StringVar()将不再自动更新!如何包含静态文本并仍然具有StringVar()更新以反映对someText所做的更改?

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

StringVar不会绑定Python名称(你称之为变量),而是使用Tkinter小部件,如下所示:

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

从那时起,a_variable.set方法的任何更改都会反映在an_entry内容中,以及对an_entry内容的任何修改(例如,由用户interface)还将更新a_variable内容。

但是,如果这不是您想要的,您可以在代码中对同一个StringVar进行两次(或更多次)引用:

var1= var2= Tkinter.StringVar()
var1.set("some text")
assert var1.get() == var2.get() # they'll always be equal