![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Andrewshkovskii |
![]()
Сообщение
#1
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
PyQt - PyQt-Py2.7-x86-gpl-4.8.4-1.exe (SIP там вроде 4.12.1 вроде, но не могу сказать точно)
Собственно сабж , такой экспешен райситься после таких вещей: виджету подменяется метод contextMenuEvent на следующую функцию:
widget.contextMenuEvent=create_context_menu(cmWrapper([{'action_title':action_handler}])) Что делает этот код? В он заменяет ивен вызова контекстного меню на кастомное меню, которое создается путем задания конфига (хэш в __init__ у cmWrapper). Эксепшен прилетает после отработки хэндлера экшена. Код отрабатывается, приложение не крашиться. Просто хотелось бы понять, откуда эксепшен летит и почему. Для чего это нужно - что бы не писать методы создания менюшек для каждого виджета, а использовать так - как показано. все это добро прилетает вот отсюда (исходники последнего sip)
мне кажется тут 2 пути решения - 1. Проверить - жива ли функция которая вернулась лямбдой после отработки хэндлера. 2 Собрать свежий SIP и PyQt и попробовать. Больше у меня мыслей, пока, нет. |
|
|
![]() |
Andrewshkovskii |
![]()
Сообщение
#2
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Нашел доку на эксепшен..
Цитата void sipBadCatcherResult(PyObject *method)¶ This raises a Python exception when the result of a Python reimplementation of a C++ method doesn’t have the expected type. It is normally called by handwritten code specified with the %VirtualCatcherCode directive. Parameter: method – the Python method and would normally be the supplied sipMethod. да в том то и дело, что он трейс мне не кидает, и вообще не понятно откуда вызывается, т.е. я его отловить руками не могу . Попробую Pdb завтра..может что покажет ![]() |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 23.7.2025, 10:04 |