【问题标题】:A new Qt widget application will not compile新的 Qt 小部件应用程序将无法编译
【发布时间】:2018-02-23 07:41:18
【问题描述】:

我对 Qt 比较陌生,并且正在阅读许多教程。一切都很好。所有脚本编译并运行。 然后,在某些时候,即使是使用 Qt Creator 4.3.1 创建的新 Qt 小部件应用程序,我也会收到错误消息:

C:\  \Documents\111\main.cpp:-1: In function 'int qMain(int, char**)':
C:\   \Documents\111\main.cpp:6: error: variable 'QApplication a' has initializer but incomplete type
     QApplication a(argc, argv);
                    ^
C:\   \Documents\111\main.cpp:11: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

我不确定发生了什么,但似乎有些设置搞砸了。 QApplication 包含在内,并且不会在脚本中丢失。

111.pro
# Project created by QtCreator 2018-02-23T01:36:28
QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = 111
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

main.cpp
#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();

return a.exec();
}

mainview.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}

MainWindow::~MainWindow()
{
delete ui;
}

在我看来,这个问题是在尝试从 https://en.ids-imaging.com/open-source.html 运行 qt5.6_src.zip 示例后出现的。

【问题讨论】:

  • 首先,请拨打tour。其次,显示导致错误信息的代码;不要转储整个项目,而是将其设为minimal reproducible example,包括.pro 文件。
  • @NikosC。你认为这有什么不同吗?为什么?

标签: qt qt-creator qt-designer


【解决方案1】:

没有完整的代码,我猜你需要将#include &lt;QApplication&gt;添加到main.cpp

错误消息告诉您缺少什么。

【讨论】:

  • 谢谢@Jiu。问题是#include &lt;QApplication&gt; main.cpp 中。但代码无法编译并出现上述错误。
【解决方案2】:

根据Qt's docs,构造函数的签名是QApplication(int &amp;argc, char **argv)。 因此,如果您从QApplication 继承,那么子类的构造函数必须通过引用传递argc。根据您的描述,您的子类的构造函数似乎实际上是按值传递 argc (即 int qMain(int, char**) )。这会导致一些问题。

【讨论】:

    【解决方案3】:

    通过删除&lt;drive&gt;:\Users\&lt;username&gt;\AppData\Roaming\QtProject&lt;drive&gt;:\Users\&lt;username&gt;\AppData\Roaming\Qt 中的Qt 文件夹和QtCreator 文件夹解决了这个问题。它存储了不正确的设置,我通过运行开源脚本以某种方式设置了这些设置。欲了解更多信息,请访问Where does QtCreator save its settings?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-05
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多