0
我存儲了一個條目矩陣,每個條目都附有一個唯一的StringVar
。在StringVar
的回調中,我希望能夠找到與矩陣有關的哪個StringVar
。這是我有:帶唯一標識符的StringVar回調?
def callback(sv, index):
print index
for i in range(ncols):
for j in range(self.nrows):
sv = StringVar()
uniqueId = str(i)+str(j)
sv.trace("w", lambda name, index, mode, sv=sv: callback(sv, uniqueId))
self.results[i][j] = Entry(gridtable,textvariable=sv,bg='grey',borderwidth=1,fg='black',width=self.widget_width).grid(row=j+2,column=i+1,sticky='ew')
然而,總是打印相同指數(「718」 - 這是「7」 +「18」:值,我和與j停止)。我如何獲得這些StringVars
的唯一標識符?
謝謝!這是完美的。你能解釋一下lambda在這種情況下做什麼嗎?換句話說,這是如何解決它的? – Adam
通過添加'var = var'和'ID = ID',您可以在創建參數時爲其分配默認值。如果沒有默認值,trace方法將調用具有「uniqueID」當前值的命令,該值將是給定的最後一個值。 – atlasologist
非常好。再次感謝你 – Adam