动态改变标签变量

Dynamically changing Label variable

我想做的是用一个数字(默认值=1)构建一个 window 和 它下方的 3 个按钮分别命名为:"UP"、"DOWN" 和 "QUIT"。 "Up" 按钮会将数字递增 1,其余按钮的作用一目了然。

from Tkinter import *
root=Tk()
number=1
Label(root,text=number,height=10,width=7).grid(row=0,pady=10,padx=10,column=10,columnspan=2,sticky=W+E)

def auksisi(number):
    number+=1
    return number
def meiosi(number):
    number = number -1
    return number
Label(root, text=auksisi(number),height=10,width=7).grid(row=0,pady=10,padx=10,column=10,columnspan=2,sticky=W+E)
Button(root, text="up",command=lambda: auksisi(number)).grid(row=3,column=2,columnspan=2)
Button(root, text="down",command=lambda: meiosi(number)).grid(row=3,column=3,columnspan=2)
Button(root, text="quit",command=root.destroy).grid(row=3,column=4,columnspan=2)

root.update()
root.mainloop()

当我按下按钮时发生的事情是什么changes.Don不用担心布局,我会修复它,我只是想让按钮工作。

grid 方法 returns None,并在创建对象后直接调用它,将使您的 eventual 引用也是 None。要更改标签的值,您需要引用它:

label_reference = Label(root, text=auksisi(number), height=10, width=7)
label_reference.grid(row=0, pady=10, padx=10, column=10, columnspan=2, sticky=W+E)

现在,您可以通过 label_reference 更改文本,例如使用 config() 方法。您可以在单击按钮时调用的方法中执行此操作:

def auksisi(number):
    number += 1
    label_reference.config(text=number)
    return number