Qt 错误:C:\Users\user-pc\Proj1\main.cpp:6: 错误:变量 'QApplication prog' 具有初始化程序但类型不完整 QApplication prog(a
Posted
技术标签:
【中文标题】Qt 错误:C:\\Users\\user-pc\\Proj1\\main.cpp:6: 错误:变量 \'QApplication prog\' 具有初始化程序但类型不完整 QApplication prog(argc, argv); [关闭]【英文标题】:Qt Error: C:\Users\user-pc\Proj1\main.cpp:6: error: variable 'QApplication prog' has initializer but incomplete type QApplication prog(argc, argv); [closed]Qt 错误:C:\Users\user-pc\Proj1\main.cpp:6: 错误:变量 'QApplication prog' 具有初始化程序但类型不完整 QApplication prog(argc, argv); [关闭] 【发布时间】:2014-04-16 07:24:45 【问题描述】:我是 Qt 编程新手,关注了这个tutorial。
在本教程中,地球上有一个复杂的程序,它是这样的:
#include "mainwindow.h"
#include <QLabel>
int main(int argc, char *argv[])
QApplication prog(argc, argv);
QLabel *l = new QLabel("Itay's First GUI in C++!!");
l->show();
return prog.exec();
由于某种原因,我收到以下错误:
C:\Users\user-pc\Tutorial\main.cpp:6: error: variable 'QApplication prog' has initializer but incomplete type
QApplication prog(argc, argv);
^
C:\Users\user-pc\Tutorial\main.cpp:10: warning: control reaches end of non-void function [-Wreturn-type]
^
谁能告诉我这个原因?
【问题讨论】:
你没有包括<QApplication>
吗?
在文件顶部尝试#include <QApplication>
。
【参考方案1】:
您需要包含QApplication
标头:
#include <QApplication>
【讨论】:
哇!谢谢!它解决了一切! @user6969 如果它解决了您的问题,请记住接受答案。 Read this to learn how to do it.【参考方案2】:错误信息“具有初始化程序但类型不完整”表示该类是前向声明的,而不是定义的。
如前所述,#include <QApplication>
解决了这个问题。
【讨论】:
【参考方案3】:我是 Qt 编程新手,并按照本教程中的教程 http://thenewboston.org/watch.php?cat=57&number=4 进行操作,这是世界上最复杂的程序,它是这样的:
您没有提到要仔细听视频。让我们看看视频中的相关截图:
如您所见,它们确实包含这一行:
#include <QtGui/QApplication>
您的代码缺少这一点,这就是它无法编译的原因,因为当您尝试使用此语句时:
QApplication prog(argc, argv);
它不会找到QApplication
类的定义。
你还有另一个问题。您还包括“mainwindow.h”,而您实际上并没有 MainWindow 实例。解决了这两个主要问题后,您的工作代码应该是这样的:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
QApplication prog(argc, argv);
QLabel *l = new QLabel("Itay's First GUI in C++!!");
l->show();
return prog.exec();
请注意我用过
#include <QApplication>
相对
#include <QtGui/QApplication>
因为前者也适用于 Qt 5。 QApplication 类与其他几个类一起被放入QtWidgets
模块中。此外,这与 QLabel
包含更一致。
【讨论】:
以上是关于Qt 错误:C:\Users\user-pc\Proj1\main.cpp:6: 错误:变量 'QApplication prog' 具有初始化程序但类型不完整 QApplication prog(a的主要内容,如果未能解决你的问题,请参考以下文章