如何使用 Tkinter 刷新 python 中的标签

How do i refresh the label in python with Tkinter

我是 python 的新手,我刚刚创建了一个小代码来制作一种点击计数器,界面是在 Tkinter 中制作的。我的问题是,每次我用硬币按下按钮时,它都会向下面的硬币计数器添加 1,这就是它应该做的,但由于某种原因,它只能添加一次硬币,在第一次点击后它不会工作了,点击按钮什么都不做。 感谢您的帮助。

from tkinter import *

window=Tk()

window.maxsize(800,800)
window.minsize(800,800)
window.title("coins")
window.iconbitmap("coin.ico")
window.config(background="#7693c2")

coin = 0

def addcoin():
    coin =+ 1
    label.config(text=coin)


frame1 = Frame(window,bg="#7693c3")
frame2 = Frame(window,bg="#7693c2")

CoinImage = PhotoImage(file="coin.png").zoom(10).subsample(13)
CoinImage2 = PhotoImage(file="coin.png").zoom(10).subsample(60)

AddCoinButton = Button(frame1, borderwidth= 30, image=CoinImage, bg="#93aacf", command=addcoin)
AddCoinButton.grid(column= 0, row=0 ,padx=180,pady=40)

canvas = Canvas(frame2, width = 100, height= 100, bg="#7693c2", bd=0, highlightthickness=0 )
canvas.create_image(50,50, image = CoinImage2)
canvas.grid(column=0,row=0)

label = Label(frame2, text=coin,bg="#7693c2",font=("ASI_System",50))
label.grid(column=1,row=0)


frame1.grid(column=0,row=0)
frame2.grid(padx=300,column=0,row=1,sticky="w")

window.mainloop()

您的代码有两个问题。首先,你在 addcoin() 中有错字,增广运算符是 +=,而不是 =+。您的代码每次都分配值 +1

其次,您定义的coin变量是一个全局变量(定义在顶部 级别,在任何 'def' 范围之外),但是当您尝试访问 coin 内部 addcoin() 函数,python 假设你想要一个局部变量,它会 抱怨它在分配之前被引用。告诉 python 你 想要全局变量,使用 global 语句。

您可以像这样更改 addcoin 函数:

def addcoin():
    global coin
    coin += 1
    label.config(text=coin)