按下按钮更新Tkinter中的标签

时间:2015-03-05 21:05:49

标签: python tkinter

我正在尝试创建一个按钮,单击该按钮会更新标签上的数字。我想要实现的是,当有人进球时,你可以点击目标!按钮,它将更新团队得分。

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。

2 个答案:

答案 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