Ошибка: 'QtGui/QMainWindow': нет такого файла или каталога: Qt 5.1.1
Я установил Qt5.1.1
и создайте новое приложение Gui. Код в mainwindow.h показывает:
#if QT_VERSION >= 0x050000
#include <QtWidgets/QMainWindow>
#else
#include <QtGui/QMainWindow>
#endif
Я думаю, что это хорошо. Но когда я запускаю его, у меня есть это:
error: C1083: Cannot open include file: 'QtGui/QMainWindow': No such file or directory
Я знаю, когда я заменяю
#if QT_VERSION >= 0x050000
#include <QtWidgets/QMainWindow>
#else
#include <QtGui/QMainWindow>
#endif
в
#include <QtWidgets/QMainWindow>
оно работает.
Мне просто интересно, почему код по умолчанию неправильный и как сделать правильный код по умолчанию.
2 ответа
You may have another option.
Вы также можете добавить widgets
в вашем .pro
файл как
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
By adding this line in .pro
file, Now you just no need to worry about Qt version and include file like <QtGui/QMainWindow>
или же <QtWidgets/QMainWindow>
Hope it will useful to you.
У меня была такая же проблема, но это с нюансами. Если этот код находится в файле .h:
#if QT_VERSION >= 0x050000
#include <QtWidgets/QMainWindow>
#else
#include <QtGui/QMainWindow>
#endif
ошибка появляется. Кажется, что QT_VERSION не определен правильно. Но если я перенесу этот код в файл .cpp, все в порядке. Проблема была решена следующим образом:
1. Добавьте в файл .pro это:
greaterThan(QT_MAJOR_VERSION, 4) {
QT += widgets
DEFINES += HAVE_QT5
}
2. Добавьте в файл .h это:
#ifdef HAVE_QT5
#include <QtWidgets/QMainWindow>
#else
#include <QtGui/QMainWindow>
#endif