0
python 2.7 및 Tkinter 사용. 루프에 네 개의 lables를 만들고 바인딩하고 있습니다. 레이블에서 레이블 이름에 을 반환하도록합니다. 문제는 내가 어떤 레이블을 눌러도 마지막 레이블의 이름을 반환한다는 것입니다. 정확하게이 문제가있는 Python Tkinter: Bind function with labels in for loop이 발견되었지만 코드를 정확하게 복사해도 주어진 솔루션이 제대로 작동하지 않습니다. 누구든지 알려주세요. 여기 내 원래 코드입니다 :Tkinter 레이블이 적절한 값을 반환하지 않음
# labelbind.py
from Tkinter import *
root = Tk()
root.title('Label choices')
root.geometry('1160x900+650+50')
root.option_readfile('setstyle2.txt')
def lblpress(x):
print 'Label pressed', x
names = ['AMEX', 'CIBC', 'VISA', 'BMO']
col = 150
row = 45
num = 1
for name in names:
bobo = 'lbl' + str(num)
print bobo, name
bobo = Label(root, text = name)
bobo.bind('<ButtonRelease-1>', lambda x = name : lblpress(name))
bobo.place(x = col, y = row)
row += 40
num += 1
root.mainloop()
@ 브라이언 오클리; 나는 당신이 대답 할 것이고 당신이 내 문제를 해결했다는 것을 확신했습니다. Tkinter 문서는 사해 파피루스를 해독하려고하는 것과 같습니다 ... 많은 출처가 있으므로 일관성이 거의 없습니다. Muchas gracias! – Albert