Нужна помощь в передаче аргументов в python с помощью виджета кнопки tkinter

Я читаю CSV-файл с 51 строкой и 4 столбцами. Я сохранил его в двухмерном списке размеров 51 X 4. Моя цель - создать 51 кнопку и каждый раз передавать значение элемента в списке [i] [1] списка, созданного таким образом, в качестве его аргумента. Но в этом коде значение list [50] [1] передается всем 51 кнопке. Как передать требуемое значение отдельного списка [i] [1] каждой i-й кнопке в качестве аргумента?

Вот мой код. Пожалуйста, найдите в нем ошибку, помощь очень ценится. Спасибо.

file = open('stocklist.csv', 'r')
reader = csv.reader(file)

stocks = []
for line in reader:
    w = line[0]
    x = line[1]
    y = line[2]
    z = line[3]

    stocks.append([w, x, y, z])

height = 51
width = 4

for i in range(height):
    b = tk.Button(f, text=stocks[i][1], command=lambda: open_link(stocks[i][1]))
    b.grid(row=i, column=1)
    print(b)

Большое спасибо, это помогло!

Amit Prafulla 10.08.2018 15:07
1
1
27
1

Ответы 1

Вы можете использовать functool's partial (ссылка на сайт):

b = tk.Button(f, text=stocks[i][1], command=partial(open_link,stocks[i][1])

Другие вопросы по теме