我一直在使用tkinter变量很短的时间,我看到的每个网站/问题似乎都没有在我的项目中工作。我想要一个名为kills_p1的变量,我想在tkinter网格中输出。单击我的按钮时,kill_count关闭播放器" A"上升一个,但总是一样。叫做PY_VARO的东西,而不是我希望它拥有的数字。 这就是我得到的:
from tkinter import *
import tkinter.ttk
master = Tk()
player1 = "A"
player2 = "B"
player3 = "C"
kills_p1 = IntVar()
kills_p1.set(0)
def kill_count_p1():
kills_p1.set(kills_p1.get()+1)
kills_p2 = 0
kills_p3 = 0
#Labels
Label(master, text="Team 1", font=("Courier", 30)).grid(row=0)
Label(master, text="NAME", font=("Courier", 25)).grid(row=1)
Label(master, text="KILLS", font=("Courier", 25)).grid(column=2, row=1)
Label(master, text="kill-buttons", font=("Courier", 22)).grid(column=4, row=1)
Label(master, text=player1, font=("Courier", 20)).grid(row=2)
Label(master, text=player2, font=("Courier", 20)).grid(row=3)
Label(master, text=player3, font=("Courier", 20)).grid(row=4)
Label(master, text=kills_p1, font=("Courier", 20)).grid(column = 2, row=2)
tkinter.ttk.Separator(master, orient=VERTICAL).grid(column=1, row=1, rowspan=4, sticky='ns')
tkinter.ttk.Separator(master, orient=VERTICAL).grid(column=3, row=1, rowspan=4, sticky='ns')
#Buttons
Button(master, text="p1: add kill", font=("Courier", 20), command=kill_count_p1).grid(column=4, row=2)
如何更改代码才能使其正常工作?
答案 0 :(得分:1)
变量已正确更新。那不是问题。问题是你使用变量的方式:
Label(master, text=kills_p1, font=("Courier", 20))
text
是在那里使用的错误参数。 text
设置标签的文字,而不是标签的变量。两者之间的区别在于text
没有变化,但如果textvariable
发生变化,则标签会自动更新。要使用变量初始化标签,您必须使用textvariable
参数:
Label(master, textvariable=kills_p1, font=("Courier", 20))