2017-01-26 20 views
-1

У меня есть простой QT проект, который выглядит следующим образом:ошибку сегментации QT программы при попытке создать экземпляр QWidget

#include <QtWidgets/qwidget.h> 

TempClass::TempClass() { 
    QWidget* tempWidget = new QWidget(); 
} 

Все компилируется нормально, но когда я пытаюсь запустить программу, ошибку сегментации на линии, инстанцирует новый QWidget. FYI Я использую QT 5.7.1.

+3

Это, вероятно, недостаточно информации. Вы создаете 'QApplication' или' QCoreApplication'? –

+0

Это QGuiApplication: Приложение QGuiApplication (argc, argv); (в main.cpp) – user1765354

+1

Если это в Windows, убедитесь, что любой используемый вами компилятор является одним и тем же (включая версию, если вы используете Visual Studio), с помощью Qt. Также убедитесь, что правильные DLL-файлы находятся на вашем пути. Если используется неправильная версия двоичных файлов Qt, ожидается сбой. – drescherjm

ответ

0

Проблема была в том, что я создавал приложение как приложение QGuiApplication и QApplication. Как только я изменил код на следующий, мой QWidget создает экземпляр правильно:

QApplication app(argc, argv);