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

2024-06-02 07:22:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个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所做的更改?

谢谢你的帮助。


Tags: andthestringherevariablewillnormalset
1条回答
网友
1楼 · 发布于 2024-06-02 07:22:39

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

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

从那时起,通过其.set方法对a_variable的任何更改都将反映在an_entry内容中,并且对an_entry内容的任何更改(例如通过用户界面)也将更新a_variable内容。

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

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

相关问题 更多 >