![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
balbes |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 62 Регистрация: 11.10.2007 Пользователь №: 10 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем привет, в продолжение прошлой теме с плагином и MDI окном.
Я переделал немного плагин, теперь он шлет главному окну сигнал для создния дочернего окна и в нем передает указатель на виджет. дочернее окно создается так: ,но есть проблема, при закрытии дочернего (только что созданного) окна, и новом открытии его приложение вылетает с ошибкой:Цитата The inferior stopped because it received a signal from the Operating System. Signal name : SIGSEGV Signal meaning : Segmentation fault Но почему? Сообщение отредактировал balbes - 12.5.2015, 10:02 |
|
|
ViGOur |
![]()
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Скорее всего это из-за того, что при первом открытии ты передаешь валидный указатель на QTableWidget, а при повтороном он уничтожается, но не становится NULL так как deleteLater и прочее.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
if( !m_pWidget ) Если эта функция нужна только чтобы создать виджет, то зачем ты хранишь указатель на этот виджет (m_pWidget)?ViGOur, прав. Удалеие виджета произойдёт после возвращения в цикл обработки событий, при этом m_pWidget скорее всего у тебя нигде не обнуляется при удалении виджета. Далее попадая в функцию CMyPlugin::getSubWindow(), тест проходит успешно (новый аиджет не создаётся) но указатель уже недействительный, ... ![]() |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 16.2.2025, 19:14 |