Python Tkinter-循环计数器递增按钮错误

时间:2018-08-21 21:13:15

标签: python-3.x tkinter

我正在创建一个有趣的RPG状态窗口(例如,当您升级到rpg并为某些统计数据添加技能点时)。我现在只是尝试创建状态窗口(根据玩家的状态显示玩家的姓名,状态和类别,等等)。

这是我到目前为止所拥有的:

from tkinter import *
from tkinter import ttk

root = Tk()
root.geometry("300x300")

counter = IntVar()

def increase_stat(event=None):
    counter.set(counter.get() + 1)
def decrease_stat(event=None):
    counter.set(counter.get() - 1)

rnum = 0

for stat in ["Str","Int","Dex"]:
    Label(root, text=stat).grid(row=rnum, column=0)
    Label(root, textvariable=counter).grid(row=rnum+1, column=1)
    Button(root, text="+", command=increase_stat).grid(row=rnum+1, column=0)
    Button(root, text="-", command=decrease_stat).grid(row=rnum+1, column=2)
    rnum = rnum + 2

root.mainloop()

这是到目前为止此代码的结果:

Result of this code

我遇到的问题是,按下任何统计信息的“ +”或“-”按钮都会影响其他所有统计信息,而不仅仅是我要单击的统计信息。例如,单击“ Str”下的“ +”按钮将+1添加到“ Str”,而是将+1添加到所有三个统计信息。

我才刚刚开始,所以我将添加的不仅仅是这三个统计信息(例如,显示角色基于该统计信息的类别),因此将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要创建一个变量来记录每个标签的增量和减量。您还必须指出必须更改哪个计数器。

也许是这样吗?

setState