我正在创建一个有趣的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()
这是到目前为止此代码的结果:
我遇到的问题是,按下任何统计信息的“ +”或“-”按钮都会影响其他所有统计信息,而不仅仅是我要单击的统计信息。例如,单击“ Str”下的“ +”按钮将+1添加到“ Str”,而是将+1添加到所有三个统计信息。
我才刚刚开始,所以我将添加的不仅仅是这三个统计信息(例如,显示角色基于该统计信息的类别),因此将不胜感激。
答案 0 :(得分:1)
您需要创建一个变量来记录每个标签的增量和减量。您还必须指出必须更改哪个计数器。
也许是这样吗?
setState