Python 如何在StringVar()中包含静态文本,并使其更新为变量更改?
我想创建一个StringVar(),如下所示:Python 如何在StringVar()中包含静态文本,并使其更新为变量更改?,python,string,text,tkinter,concatenation,Python,String,Text,Tkinter,Concatenation,我想创建一个StringVar(),如下所示: someText = "The Spanish Inquisition" # Here's a normal variable whose value I will change a_variable= Tkinter.StringVar() an_entry= Tkinter.Entry(textvariable=a_variable) 最终 TkEquivalent = StringVar() # and here's the String
someText = "The Spanish Inquisition" # Here's a normal variable whose value I will change
a_variable= Tkinter.StringVar()
an_entry= Tkinter.Entry(textvariable=a_variable)
最终
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()更新来反映对某些文本所做的更改
感谢您的帮助。StringVar不绑定Python名称(您称之为变量),而是绑定Tkinter小部件,如下所示:
someText = "The Spanish Inquisition" # Here's a normal variable whose value I will change
a_variable= Tkinter.StringVar()
an_entry= Tkinter.Entry(textvariable=a_variable)
从那时起,通过其.set
方法对a_变量
的任何更改都将反映在a_条目
内容中,并且对a_条目
内容的任何修改(例如通过用户界面)也将更新a_变量
内容
但是,如果这不是您想要的,您可以在代码中有两个(或更多)对同一个StringVar的引用:
var1= var2= Tkinter.StringVar()
var1.set("some text")
assert var1.get() == var2.get() # they'll always be equal
没有足够的代码为您的问题提供上下文。猜猜你想问什么,Tkinter绑定的变量在tk主循环空闲之前不会更新。如果您陷入Python代码中,那么事件循环不会执行,UI和绑定变量之间不会传递任何信息。这一点在