我要做的是构建一个带有数字的窗口(默认值= 1)和 它下面的3个按钮名为:" UP"," DOWN"和"退出"。 "向上"按钮将数字增加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()
当我按下按钮没有任何变化时,发生了什么。不用担心布局我会解决它,我只是想按钮工作。
答案 0 :(得分:0)
grid
方法返回None
,并在创建对象后直接调用它,这样您的最终引用也将成为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