Когда я скомпилировал мой qt проект , он показал такую ошибку. Почему ??
QWidget: Cannot create a QWidget without QApplication
Я так и не понял в чём проблема.
#include<QApplication>
#include"MainWindow.h"
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
MainWindow w;
w.show();
return app.exec();
}
Этот вопрос, перевод вопроса https://stackoverflow.com/questions/36951652/cannot-create-a-qwidget-without-qapplication
Это очевидно. Вам нужен QApplication для QWidget. Измените QGuiApplication на QApplication, и код будет работать нормально.
#include <QApplication>
#include "MainWindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow w;
w.show();
return app.exec();
}
А если вы хотите знать «Почему существуют три основных класса, такие как QApplication, QGuiApplication и QCoreApplication»,то прочтите абзац ниже.
QCoreApplication является базовым классом, QGuiApplication расширяет базовый класс с помощью функций, связанных с обработкой окон и файлов GUI (не связанных с виджетами, например OpenGL или QtQuick), QApplication расширяет QGuiApplication с функциональностью, связанной с обработкой виджетов.
Разве это не основной пример, доступный в Qt Creator? Вам нужна книга для изучения Qt, и я предлагаю вам прочитать «Qt 4: программирование GUI на С++» Жасмин Бланшет.
От переводчика, описание QGuiApplication в книге «Qt 4: программирование GUI на С++» нет.
Из класса QGuiApplication Описание:
Для Qt-приложений, основанных на QWidget, вместо этого используйте QApplication, поскольку он предоставляет некоторые функции, необходимые для создания экземпляров QWidget.
От себя добавлю в русском языке очень хороша книга "Qt 5.3 профессиональное программирование на С++" Макс Шлее.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости