如何使用python更新带有数值的Label?

时间:2017-05-14 14:14:35

标签: python tkinter label

我尝试了很多不同的事情,但到目前为止还没有任何工作。

每次按下" + 1"(b1)或" -1"(b2)按钮时,我试图将Label(l1)增加或减少1。但目前,Label只是坐在那里并没有做任何事情。

以下是代码的基本形式,而不尝试更新标签:

from tkinter import *
root = Tk()

p1 = 0

l1 = Label(root, textvariable = p1)
f1 = Frame(root)
b1 = Button(root, text = "+1", command = p1 + 1)
b2 = Button(root, text = "-1", command = p1 - 1)

l1.grid(row=0, column=0)
f1.grid(row=1, column=0)

b1.pack(side="top")
b2.pack(side="top")

root.mainloop() 

1 个答案:

答案 0 :(得分:1)

您的代码中存在几个问题:

  • command的{​​{1}}选项需要一个函数,Button不是函数。
  • p1 +/- 1的{​​{1}}选项需要一个Tkinter变量,通常为textvariable,但此处Label更合适。
  • 您在StringVar中混合了IntVarpack,这是不可能的。

为了做你想做的事,你需要定义两个函数,一个将grid的值增加1,另一个减少它。然后,将函数传递给按钮的root选项,并将IntVar传递给标签的textvariable参数:

command