循环定义TkInter StringVars

时间:2018-12-12 02:07:06

标签: python-3.x tkinter

我的程序遍历值列表,并创建一个包含相关信息的新框架。我想添加一个按钮以刷新其中一个框架中的值。下图是我要实现的目标的模型,其中“重新加载”按钮仅为一台打印机获取新数据。Mockup

我遇到一个问题,其中仅最后一个值得到更新。以下代码是我正在尝试的近似代码:

import tkinter as tk
from tkinter import ttk

def buttonupdate(x):
    return int(x.get())+1

root=tk.Tk()

values=[0,0,0,0,0,0,0]
stringVarList=[]

for i,item in enumerate(values):
    newStringVar=tk.StringVar()
    newStringVar.set(item)
    stringVarList.append(newStringVar)

    valueLabel=tk.Label(root, textvariable=stringVarList[i])
    valueLabel.grid(row=0,column=i)

    button=tk.Button(root, text="+1", command=lambda:stringVarList[i].set(buttonupdate(stringVarList[i])))
    button.grid(row=1, column=i)

root.mainloop()

使用此代码,无论我按哪个按钮,都只会更新最后一个值。

enter image description here

我可以尝试什么呢?谢谢。

0 个答案:

没有答案