Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> функция сама запускается в TKINTER ? 
V
    Опции темы
RM2010
  Дата 15.2.2010, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 29.1.2010

Репутация: -1
Всего: 2



День Добрый!
Пытаюсь написать простенький калькулятор.
Скажем есть кнопка:

...
b1 = Button(app, text="  1  ", command = cb1 )
b2 = Button(app, text="  1  ", command = cb2 )
b3 = Button(app, text="  1  ", command = cb3 )
...

на данный момент она запускает функцию cb1, которая добавляет "1", но при этом приходиться писать свою функцию для каждой кнопки.


Если же я пишу так

...
b1 = Button(app, text="  1  ", command = add(1) )
b2 = Button(app, text="  1  ", command = add(2) )
b3 = Button(app, text="  1  ", command = add(3) )
...

тем самым обращаясь к функции add, и добавляя параметр 1, то команда запуска функции срабатывает сразу после запуска программы, без нажатия кнопки.

что делать? и можно ли вообще таким образом передавать параметры функции?

Это сообщение отредактировал(а) RM2010 - 15.2.2010, 15:28
PM MAIL   Вверх
andrew_121
Дата 15.2.2010, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: нет
Всего: 33



Цитата(RM2010 @  15.2.2010,  15:27 Найти цитируемый пост)
команда запуска функции срабатывает сразу после запуска программы

естественно. т.к. выражение "add(1)" выполняется при создании кнопки.
покажи декларацию конструкторов "Button".

Добавлено через 1 минуту и 34 секунды
Цитата(RM2010 @  15.2.2010,  15:27 Найти цитируемый пост)
что делать? и можно ли вообще таким образом передавать параметры функции?

попробуй так:
Код

b1 = Button(app, text="  1  ", command = lambda: add(1) )
b2 = Button(app, text="  1  ", command = lambda: add(2) )
b3 = Button(app, text="  1  ", command = lambda: add(3) )



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
RM2010
Дата 15.2.2010, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 29.1.2010

Репутация: -1
Всего: 2



УРА! Работает! Спасибо!
b1 = Button(app, text="  1  ", command = lambda: add(1) ) smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.