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]
 
 ^

谁能告诉我这个原因?

【问题讨论】:

你没有包括&lt;QApplication&gt; 吗? 在文件顶部尝试#include &lt;QApplication&gt; 【参考方案1】:

您需要包含QApplication 标头:

#include <QApplication>

【讨论】:

哇!谢谢!它解决了一切! @user6969 如果它解决了您的问题,请记住接受答案。 Read this to learn how to do it.【参考方案2】:

错误信息“具有初始化程序但类型不完整”表示该类是前向声明的,而不是定义的。

如前所述,#include &lt;QApplication&gt; 解决了这个问题。

【讨论】:

【参考方案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的主要内容,如果未能解决你的问题,请参考以下文章

Qt中的编译错误

如果构造函数中发生错误,Qt 会做啥? [复制]

运行 Qt5 应用程序时出现 Qt 错误消息

Qt 5.1 qHash 错误

Qt5:错误:“WA_LockPortraitOrientation”不是“Qt”的成员

qt 错误 多继承 造成错误:error C2039: “qt_metacall“: 不是 “xxxxxx“ 的成员