当我编译我的qt项目时显示如下错误?
QWidget: Cannot create a QWidget without QApplication
有什么问题?
Main.cpp的
#include<QApplication>
#include"MainWindow.h"
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
MainWindow w;
w.show();
return app.exec();
}
答案 0 :(得分:11)
很明显。您需要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”,请参阅this。它说:
QCoreApplication是基类,QGuiApplication扩展了基础 具有与处理窗口和GUI内容相关的功能的类 (非小部件相关,例如OpenGL或QtQuick),QApplication扩展 QGuiApplication具有与处理小部件相关的功能。
顺便说一句,这不是Qt Creator上可用的基本示例吗?你需要一本书来学习Qt,我建议你阅读Jasmin Blanchette的“Qt 4(第2版)的C ++ GUI编程”。
答案 1 :(得分:6)
您应该将主屏幕中的QGuiApplication
更改为QApplication
。
来自QGuiApplication Class Description:
对于基于QWidget的Qt应用程序,请使用QApplication 提供了创建QWidget实例所需的一些功能。