#wxpython
#wxpython
Вопрос:
Я разрабатываю графический интерфейс пользователя, и все идет хорошо, за исключением того, что когда я закрываю его, в моем терминале появляется следующее, и я боюсь, что это может повлиять на конечного пользователя:
swig/python detected a memory leak of type 'wxWizard *', no destructor found.
Как мне предотвратить эту утечку памяти?
Ответ №1:
Похоже, что мастер закрывается неправильно. Убедитесь, что вы вызываете метод мастера Destroy() при выходе из мастера, независимо от того, завершает пользователь работу мастера или нет.
Вы должны быть в состоянии сделать это, перехватывая события кнопки завершения и отмены мастера. Вы также можете перехватить EVT_CLOSE и уничтожить мастер в этом обработчике событий. Пожалуйста, обратите внимание, что в этом случае вам также потребуется вызвать метод Destroy фрейма, чтобы заставить фрейм закрыться должным образом.
Комментарии:
1. Пожалуйста, создайте небольшой работоспособный пример, который демонстрирует проблему. Также укажите, какие версии OS, wxPython и Python вы используете
2. Привет
Mike
. Я вызвалDestroy()
метод мастера для каждого из отдельных приложений (которые являются функциями, которые я реализовал в своемTestPanel
классе), а также включил большую частьrun.py
кода. После определения моегоclass LoginDialog()
объекта я немедленно скопировал-вставилclass RunDemoApp()
объект вrun.py
модуль, выполнив весь соответствующий импорт пакета. Из подсказки, которую вы дали мне ранее, я сделал вывод, что если бы я явно включил код вrun.py
, мне не понадобилась быrunTest
функция. Как всегда, спасибо за руководствоMike
. Кстати, ваш блог отличный!3. Это сложный мастер со многими функциями, которые я разрабатываю для клиента здравоохранения для создания групп и анализа показателей заболеваемости, а также для обнаружения сигналов, поэтому создать небольшой работоспособный пример может быть сложно, но я постараюсь, если мне не удастся решить эту проблему к концу дня. Как бы то ни было, я использую Mac OS X Mavericks, wxPython версии 3.0 (cocoa) и python 2.7.6. Еще раз спасибо.
4. Эта ссылка также может оказаться полезной, если вы используете демонстрационный код: wiki.wxpython.org/Using wxPython Demo Code
5. Спасибо, Майк. Только что проверил это, и это очень информативно, особенно для относительного новичка wxPython, такого как я