在下面的代码中,我创建了一系列按钮,以便在创建的number类上运行increase或decrease方法。你知道吗
for idx in range(len(self._priceNums)):
Button(window, text='^', command=lambda: self.incNum(idx)).grid(row=0, column=numInColumn)
Label(window, textvariable=self._priceNums[idx]).grid(row=1, column=numInColumn)
Button(window, text='v', command=lambda: self.decNum(idx)).grid(row=2, column=numInColumn)
numInColumn += 1
该函数在列表中选定的对象上按预期工作,但我的问题是让按钮在正确的对象上操作。那个
lamba: self.incNum(idx)
似乎只有在按下按钮时才读取idx。因此,每个按钮只对列表中的最后一个对象运行方法。有没有办法用这种方式创建一系列按钮,每个按钮对应于列表中相应的数字对象。这是供参考的方法
def incNum(self, idx):
self._priceNums[idx].set(self.game._adjustedPrice[idx].incNum())
请注意,可能有帮助,也可能没有帮助:
\u priceNums是与\u adjustedPrice中number对象的值相对应的StringVars列表
谢谢你!你知道吗
您需要将idx变量传递给lambda函数。你知道吗
相关问题 更多 >
编程相关推荐