我正在尝试创建一个按钮,单击该按钮会更新标签上的数字。我想要实现的是,当有人进球时,你可以点击目标!按钮,它将更新团队得分。
import sys
from tkinter import *
root = Tk()
class team1:
score = 0
def goal(self):
self.score += 1
team1_attempt.set(text = self.score)
team1 = team1()
team1_attempt = Label(text = team1.score).pack()
team1_button = Button(text="Goal!", command = team1.goal).pack()
希望有人可以帮忙!新的python。
答案 0 :(得分:5)
您的代码存在两个问题。
第一个问题:
team1_attempt = Label(text = team1.score).pack()
这会将team1_attempt
设置为None
,因为pack(0
会返回None
。如果要保存对窗口小部件的引用,以便以后可以与它进行交互,则必须分两步执行窗口小部件创建和窗口小部件布局。
第二个问题:
team1_attempt.set(text = self.score)
要更改窗口小部件的属性,请使用configure
方法。我不知道您在标签小部件上调用set
时所读到的文档,但该文档是错误的。使用configure
,如下所示:
test1_attempt.configure(text=self.score)
答案 1 :(得分:-2)
尝试使用Entry小部件将分数插入Entry小部件,而不是使用标签。例如:
class test:
def __init__(self, master):
self.goalButton = Button(master,
text = "goal!",
command = self.goalUpdate)
self.goalButton.pack()
self.goalDisplay = Entry(master,
width = 2)
self.goalDisplay.pack()
self.score = 0
def goalUpdate(self):
self.goalDisplay.delete(1.0, END) # Deletes whatever is in the score display
score = str(self.score)
self.goalDisplay.insert(0, score) # Inserts the value of the score variable