Сигналы qt вызывают ошибку сегментации при подключении

Я сделал виджет, который ведет себя как окно, и когда кнопка нажата, он просто излучает сигнал:

signals:
    void SaveTask( void );

в моем mainwindow.cpp я определяю (в конструкторе):

connect( taskWindow, SIGNAL(SaveTask()), task_view, SLOT(UpdateFromTasks()) );

taskWindow = указатель на окно, из которого исходит этот сигнал. task_view = указатель на treewidget в главном окне со слотом.

Он спроектирован таким образом, что при сохранении задачи он отображается в виде дерева.

к сожалению, когда я пытаюсь запустить программу, она вызывает ошибку на соединительной линии, когда я удаляю ее, программа просто работает нормально (кроме этой функции, конечно). Он компилируется, и все элементы инициализируются и используются. Я просто не вижу, как это может потерпеть неудачу.

1 ответ

Решение

Похоже, что вы устанавливаете соединение до того, как инициализируете taskWindow или task_view и используете неинициализированные указатели.

Также вы можете попробовать эту подпись (что должно быть то же самое, но только для хорошей меры)

signals:
    void SaveTask();
Другие вопросы по тегам