Найти - Пользователи
Полная версия: Как создать 108 кнопок, которые способны вызывать фунции с опр. аргумментом
Начало » GUI » Как создать 108 кнопок, которые способны вызывать фунции с опр. аргумментом
1
Grig_iv
Создал 108 кнопок, с помощью циклы, каждая из которых вызывает функцию с аргументом из массива, но все кнопки вызвают функцию с аргументом последнего элемента массива

for i in range(108):
    bttn = Button(root, text = hero[i], command = lambda : emn_hero(hero[i])).pack()

Как сделать так, чтобы каждая кнопка запоминала аргумент для функции?

P.S. Моя первая тема на форуме
4kpt_II
Ох. Мы Лутца не читали
Разберитесь, чем lambda отличается от других функций…

По Вашему вопросу.
for i in range(108):
    Button(root, text=hero[i], command=lambda i=i: emn_hero(hero[i])).pack()

P.S. Для Button не обязательно создавать переменную, если Вы больше не планируете ссылаться на кнопку для ее изменения или каких-нибудь других действий.

P.S.S. Не делайте никогда

from Tkinter import*
Grig_iv
Спасибо. Не читал я Лутца, так как это моя втроая программа. И питон в унвре мы будем изучать только 1-ый курс, а дальше с\с++. Преспективен ли python я не знаю
4kpt_II
Уж точно перспективнее плюсов
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB