Название: SIGSEGV при попытке отобразить диалоговое окно Отправлено: alphawell от Август 11, 2015, 11:06 Доброе время суток, уважаемые специалисты.
В книге Ж.Бланшетт и М.Саммерфилда "C++ GUI Programming with Qt 4, Second Edition" (часть 1 "Basic Qt", глава 3 "Creating Main Windows" подраздел "Using Dialogs") в приведен следующий код для отображения диалогового окна (ранее созданного на основе QDialog) при выполнении соответствующей команды меню главного окна приложения: Код
Хотелось бы для начала понять что за конструкция приведена в качестве условной для оператора if. Логично предположить, что это некая проверка того, был ли ранее выполнен конструктор данного объекта, но в документации по классу QDialog я таких членов-функций в его составе не нашел. Информации, приведенной в книге также недостаточно: Цитировать If the Find dialog doesn't already exist, we create it and connect its findNext() and findPrevious() signals to the corresponding Spreadsheet slots. Основная же проблема заключается в том, что реализовав подобную конструкцию в своем коде, я, при попытке запустить программу, получаю ошибку, под отладчиком выдает SIGSEGV Segmentation fault. Отладчик показывает на строку, следующую после тела конструкции ветвления (setModal(true)): Код
Класс layersConfigDialog создан на базе QDialog в полном соответствии с примерами из книги. configureLayers (как и find в первом случае) это private-слот класса MainWindow. Хотелось бы понять в чем ошибка. Заранее благодарю за помощь. Название: Re: SIGSEGV при попытке отобразить диалоговое окно Отправлено: Пантер от Август 11, 2015, 11:15 Видимо, ты в конструкторе не инициализируешь findDialog нулем.
Название: Re: SIGSEGV при попытке отобразить диалоговое окно Отправлено: alphawell от Август 11, 2015, 11:51 Видимо, ты в конструкторе не инициализируешь findDialog нулем. Благодарю Вас, помогло. |