如何将Tkinter变量打印为字符串的一部分?

她诺兰

在常规Python 3.4中,如果要在字符串中间打印变量,请执行以下操作:

x = 31
print("The value of x is %s" % (x))

它将打印The value of x is 31

在Tkinter中,如果要让标签读取某个变量,则只需定义标签,并且在任何时候标签的变量发生更改,如果它是Tkinter标签,则标签会自动更新。例如:

var = StringVar()
var.set("Label")
label = Label(main, text=var)

但是,如果我希望在Tkinter中将字符串的一部分作为变量...

items = IntVar()
items.set(14)
b = Button(main, text="I have %s items" % (items.get()), command=additem)

def additem():
    items.set(items.get() + 1)

...按钮没有更新。当我按它时,打印的值保持不变,"I have 14 items"而不是更改"I have 15 items"为应有的值。

我应该怎么做呢?

fhdrsdg

当我按它时,打印的值将保持为“我有14个项目”,而不是应更改为“我有15个项目”。

不,不应该。您将按钮的文本定义为带有当时编号的字符串items您无处告诉文字要更新。texttextvariable属性做完全不同的事情,text设置文本不更新,textvariable需要一个StringVar或其他Tkinter的变量,并保持更新,这个变量的内容的文本。因此也请注意,您的第一个示例是错误的,您必须使用textvariable那里属性将StringVar的内容绑定到按钮,而不是text

我认为最好的解决方案是不使用IntVar,只需使用configure以下命令手动更新文本即可

root = Tk()

def additem():
    global items
    items += 1
    b.configure(text="I have %s items" % (items))

items = 14
b = Button(root, text="I have %s items" % (items), command=additem)
b.pack()

root.mainloop()

另一种选择是将标签分成三个标签,然后将它们放在一起,如:

root = Tk()

def additem():
    items.set(items.get() + 1)

f = Frame(root)

items = IntVar()
items.set(14)

l0 = Label(f, text="I have")
l1 = Label(f, textvariable=items)
l2 = Label(f, text="items")

b = Button(root, text="Add item", command=additem)

l0.pack(side=LEFT)
l1.pack(side=LEFT)
l2.pack(side=LEFT)

f.pack()
b.pack()

root.mainloop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将变量打印为多行字符串的一部分?

如何将字符串的一部分提取到变量中?

如何将查询结果显示为字符串的一部分?

如何将字符串的一部分读取为较小的字符串

如何将Go结构的一部分定义为JSON字符串?

Golang-如何将XML文件的一部分提取为字符串?

如何将字符串的一部分更改为 JSX 元素?

如何将字符串的一部分捕获到向量中

如何将PChar的一部分提取到字符串中?

如何将字符串的一部分转换为整数?

如何将字符串的一部分转换为斜体?

如何将字符串的一部分存储到字典中

如何将字符串的一部分提取到chracter?

如何将 Python 字符串变量添加到 Python 中的 SQL 字符串变量的一部分?

如何打印 JSON 字符串的一部分并将其存储在变量中?

如何将我的Javascript变量打印为HTML属性的一部分?

如何使用子字符串将变量的一部分打印到屏幕上并使用 indexOf 方法确定输入中是否包含“@”符号

如何从“ startswith”到“ endswith”打印字符串的一部分

如何在C中打印字符串的一部分

如何從數組(Java)打印字符串的一部分?

将字符串的一部分放入变量中

awk将变量添加到列字符串的一部分

将字符串的一部分绑定到Angular作用域变量

如何将字符串中除数字以外的字符的一部分解析为整数

如何将变量作为字符串的一部分连接起来(用于文件名)?

oracle 动态查询问题:如何将值放入作为字符串一部分的变量中

JavaScript:如何将颜色更改为仅输入字段中字符串的一部分?

如何将字符串的一部分从列复制到熊猫的新列中

将字符串的一部分设置为百分比