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

标签 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() 以反射(reflect)对 someText 所做的更改?

感谢您的帮助。

最佳答案

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

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

从那时起,a_variable的任何变化通过其 .set方法将反射(reflect)在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

关于python - 如何在 StringVar() 中包含静态文本并仍将其更新为变量更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2770409/

相关文章:

html - 特定链接的 CSS 样式

python - 如何使用python和OpenCV在图像中标记车牌

python - 是否有纯 python 代码可以从带有本地和全局参数的 execfile 中跳出?

javascript - 将文本参数传递给 jQuery 上 .load 函数的 url 变量

java - LWJGL 3 - 渲染文本

r - 提取r中分号之间的字符

python - 使用 PyQt 和 QWebview 填写表单

python - 无服务器 - Numpy - 无法找到好的绑定(bind)路径格式

数组中的 PHP 最短/最长字符串长度

java - 带有 StringBuilder 和 CharSequence 的 ClassCastException