Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 3, 2012 08:56:06

rustavel
От:
Зарегистрирован: 2011-02-24
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

wx "maximum recursion depth exceeded"

Доброго…
объявляю событие которое запускает проверку по виджетам на состояние вкл.выкл/активен.неактивен/проверка правильности ввода(например дата).Всего их около 15 и они разные!!
проверка проходит правильно(так как я задумал).
Но в консоли

Traceback (most recent call last):
File “D:\PrPro\pPythonF\1_Psiholog\psiholog_3\sect_po_win_edit_rec.py”, line 2
12, in OnCheckZakl
self.set_in_db_chb.Enable(False)
RuntimeError: maximum recursion depth exceeded

>превышенная максимальная глубина рекурсии<

Мож кто сталкивался…



Отредактировано rustavel (Сен. 3, 2012 09:04:50)

Офлайн

#2 Сен. 3, 2012 10:07:41

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

wx "maximum recursion depth exceeded"

rustavel
Доброго…
объявляю событие которое запускает проверку по виджетам на состояние вкл.выкл/активен.неактивен/проверка правильности ввода(например дата).Всего их около 15 и они разные!!
проверка проходит правильно(так как я задумал).
Но в консоли

Traceback (most recent call last):
File “D:\PrPro\pPythonF\1_Psiholog\psiholog_3\sect_po_win_edit_rec.py”, line 2
12, in OnCheckZakl
self.set_in_db_chb.Enable(False)
RuntimeError: maximum recursion depth exceeded

>превышенная максимальная глубина рекурсии<

Мож кто сталкивался…
Рекурсия у вас бесконечная возникает, где именно не видя кода не сказать, но скорее всего по событию вы изменяете состояние виджета, которое вызывает событие, по которому вы изменяете состояние виджета, которое вызывает событие, по которому вы изменяете состояние виджета, которое вызывает событие, по которому вы изменяете состояние виджета, которое вызывает событие, по которому вы изменяете состояние виджета, которое вызывает событие, по которому вы изменяете состояние виджета, которое вызывает событие, по которому вы изменяете состояние виджета, которое вызывает событие, по которому вы изменяете состояние виджета, которое вызывает событие, по которому вы изменяете состояние …

RuntimeError: maximum recursion depth exceeded



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Сен. 3, 2012 10:41:49

rustavel
От:
Зарегистрирован: 2011-02-24
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

wx "maximum recursion depth exceeded"

принцип такой:
есть набор виджетов
когда меняется их значение(ввод текста и т.п.) вызывается обработчик события,
который проходит по всем виджетам(в том числе и вызвавшему событие) и определяет, подходит ли их общая конфигурация для активации кнопки “сохранить”!!
при вводе одной даты происходит генерация другой(на пару лет больше), которое вызывает работающий обработчик(рекурсию)!
вот тут и происходит ета байда

как в таком случае распознать генерацию событий пользователя от программных!?

пока пишу пришла идея

обвернул участок кода в обработчике, где происходит авто заполнение в
{однуление обработчика событий}и{повторное объявление событий}
+все ето в {try}{except c {повторное объявление событий}}
все рабори
ВинниПух, спасибо за подсказку!!



Отредактировано rustavel (Сен. 3, 2012 10:50:38)

Офлайн

#4 Сен. 4, 2012 05:44:34

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

wx "maximum recursion depth exceeded"

Покажите все таки код, меня пугает вот это:

rustavel
{повторное объявление событий}
Есть подозрение что вы сражаетесь с ветряными мельницами



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version