Уведомления

Группа в Telegram: @pythonsu

#1 Март 6, 2013 20:05:03

SoT
Зарегистрирован: 2012-12-12
Сообщения: 68
Репутация: +  4  -
Профиль   Отправить e-mail  

Почему вызывается функция которая должна вызываться только при нажатии кнопки

Код программы в файле http://rusfolder.com/35347630 .

ПРограмма должна строить гистограмму по введённым параметра при нажатии кнопки построить или построить N1. Когда она считала только верхнюю часть проблем не было. Потом была дописанна часть с четырьмя кнопками построить N1,N2,D1,D2 по аналогии с первой частью и после отладки и устранения ошибки при запуске программы она почему то отрабатывает так, как будто было нажаты поочерёдно все четыре кнопки построить N1,N2,D1,D2.
Подскажите как избежать этого срабатывания
P.s. Извините за грязный код, не было время очистить от лишнего, вечером отредактирую сообщение и выложу более чистую версию




Отредактировано SoT (Март 6, 2013 20:07:54)

Офлайн

#2 Март 7, 2013 10:20:54

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Почему вызывается функция которая должна вызываться только при нажатии кнопки

Со смарта по вашей ссылке белый лист открывается, код не посмотрел всвязи с этим. Могу лишь предположить, что на кнопки вы там повесили не сами функции, а результат их выполнения, ну т.е. скобочки после функций там не стоят?

Офлайн

#3 Март 7, 2013 11:08:09

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Почему вызывается функция которая должна вызываться только при нажатии кнопки

Соответствующие кусоки кода, исправьте вот так

bt_n1 = Tkinter.Button(root)
bt_n1["text"] = u"Построить N1"
bt_n1.bind("<Button-1>", lambda x: plot_in_root_multi( n1_mass_left, n1_mass_right , entry_varnra1) )
bt_n1.place(relx = 0.9, rely = 0.3, anchor = "center")
bt_n2 = Tkinter.Button(root)
bt_n2["text"] = u"Построить N2"
bt_n2.bind("<Button-1>", lambda x: plot_in_root_multi( n2_mass_left, n2_mass_right , entry_varnra2))
bt_n2.place(relx = 0.9, rely = 0.36, anchor = "center")
bt_d1 = Tkinter.Button(root)
bt_d1["text"] = u"Построить D1"
bt_d1.bind("<Button-1>", lambda x: plot_in_root_multi( d1_mass_left, d1_mass_right , entry_vardra1))
bt_d1.place(relx = 0.9, rely = 0.42, anchor = "center")
bt_d2 = Tkinter.Button(root)
bt_d2["text"] = u"Построить D2"
bt_d2.bind("<Button-1>", lambda x: plot_in_root_multi( d2_mass_left, d2_mass_right , entry_vardra2))
bt_d2.place(relx = 0.9, rely = 0.48, anchor = "center")

def plot_in_root_multi(mass_left, mass_right, mass_data):
....



Отредактировано FishHook (Март 7, 2013 11:09:30)

Офлайн

#4 Март 7, 2013 12:59:06

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Почему вызывается функция которая должна вызываться только при нажатии кнопки

А за использование rusfolder и подобных ресурсов предлагаю жестоко банить



Офлайн

#5 Март 8, 2013 19:58:08

SoT
Зарегистрирован: 2012-12-12
Сообщения: 68
Репутация: +  4  -
Профиль   Отправить e-mail  

Почему вызывается функция которая должна вызываться только при нажатии кнопки

FishHook большое спасибо за помощь. cutwater учту ваше замечание и больше не буду этим грешить. Просто в первый раз забыл прикрепить файл к теме, а при редактировании это по-видимому невозможно. Как добавлять код в сообщение разобрался только сейчас

Отредактировано SoT (Март 8, 2013 20:01:23)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version