我正在创建一个记分篮球程序。我有几个不同的文件,有类什么的。我的主要问题是试图更新每个球员的分数
例如:
我在屏幕上设置了一个按钮
pointsButton = Button(root, text='1PT', command=addPoint)
pointsButton.grid(row=0, column=1)
旁边有一个标签,它调用特定玩家的点数(假定)
plabel = Label(root, text=(str(p.points)), relief='groove', bg='#41B6E6', fg = '#DB3EB1', padx=numX, pady=numY)
plabel.grid(row=rowNumber, column=4)
这是我的player类中的代码,可能是理解我的问题所需要的
class BasketballPlayer:
#Constructor
def __init__(self , preName, lastName, jerseyNumber):
self.preName = preName
self.lastName = lastName
self.jerseyNumber = jerseyNumber
self.points = 0
self.assists = 0
self.rebounds = 0
self.steals = 0
self.blocks = 0
self.fouls = 0
self.threePointers = 0
self.careerHighPoints = 0
self.careerHighAssists = 0
self.careerHighRebounds = 0
self.careerHighSteals = 0
self.careerHighBlocks = 0
self.careerHighThreePointers = 0
以及类中的几个函数:
def addPoints(self, p):
self.points += p
def incrementOnePoint(self):
self.points += 1
def getPoints(self):
return self.points
这里有几个我试过的函数
def addPoint():
p.incrementOnePoint()
plabel.config(text=p.points)
或:
def addPoint():
p.addPoints(1)
plabel.config(text=p.points)
我真的以为它会自动更新,因为我在给变量添加一个整数,但它根本不会更新
以下是评论中要求的最小可复制示例
from tkinter import *
root = Tk()
class bballPlayer:
def __init__(self):
self.points = 0
def incrementOnePoint(self):
self.points += 1
def getPoints(self):
return self.points
def addOnePoint():
p.incrementOnePoint
global pointslabel
pointslabel.config(text=str(p.points))
p = bballPlayer()
pointslabel = Label(root, text=str(p.points))
pointslabel.grid(row=0, column=1)
btn = Button(root, text='Add Point', command=addOnePoint)
btn.grid(row=0, column=0)
root.mainloop()
啊,现在我明白了问题所在,您的代码没有调用
incrementOnePoint()
方法(只引用它的名称)相关问题 更多 >
编程相关推荐