Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Как создать 108 кнопок, которые способны вызывать фунции с опр. аргумментом [RSS Feed]

#1 Сен. 22, 2014 22:44:56

Grig_iv
Зарегистрирован: 2014-09-22
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Как создать 108 кнопок, которые способны вызывать фунции с опр. аргумментом

Создал 108 кнопок, с помощью циклы, каждая из которых вызывает функцию с аргументом из массива, но все кнопки вызвают функцию с аргументом последнего элемента массива

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

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

P.S. Моя первая тема на форуме

Отредактировано Grig_iv (Сен. 22, 2014 23:02:45)

Офлайн

#2 Сен. 22, 2014 23:02:33

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Как создать 108 кнопок, которые способны вызывать фунции с опр. аргумментом

Ох. Мы Лутца не читали
Разберитесь, чем 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*

Отредактировано 4kpt_II (Сен. 22, 2014 23:11:42)

Офлайн

#3 Сен. 22, 2014 23:12:17

Grig_iv
Зарегистрирован: 2014-09-22
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Как создать 108 кнопок, которые способны вызывать фунции с опр. аргумментом

Спасибо. Не читал я Лутца, так как это моя втроая программа. И питон в унвре мы будем изучать только 1-ый курс, а дальше с\с++. Преспективен ли python я не знаю

Офлайн

#4 Сен. 22, 2014 23:23:11

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Как создать 108 кнопок, которые способны вызывать фунции с опр. аргумментом

Уж точно перспективнее плюсов

Офлайн

  • Начало
  • » GUI
  • » Как создать 108 кнопок, которые способны вызывать фунции с опр. аргумментом[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version