我对python很陌生,我刚刚创建了一个小代码,用Tkinter的接口制作了一个点击计数器。我的问题是,每次我按下按钮的硬币,它添加1硬币计数器下面,这是它应该做的,但由于某种原因,它只能添加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假定您需要一个局部变量,它会的抱怨它在作业前被引用。告诉巨蟒你如果需要全局变量,请使用global
语句。
你可以这样修改你的addcoin函数:
def addcoin():
global coin
coin += 1
label.config(text=coin)