Определение TkInter StringVars в цикле - PullRequest
0 голосов
/ 12 декабря 2018

Моя программа просматривает список значений и создает новый фрейм с соответствующей информацией.Я хочу добавить кнопку, чтобы обновить значения только в одном из кадров.Следующее изображение представляет собой макет того, чего я пытаюсь достичь, где кнопка «перезагрузить» собирает новые данные только для одного принтера. 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

Что я могу попробовать вместо этого?Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...