我是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会假定您需要局部变量,并且会抱怨说它是分配前引用。要告诉python您需要全局变量,请使用global
语句。
您可以像这样更改addcoin函数:
def addcoin():
global coin
coin += 1
label.config(text=coin)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句