c++ Qt creator项目中的编译错误

Compilation error in C++ Qt creator project

本文关键字:编译 错误 项目 Qt creator c++      更新时间:2023-10-16

我是编程新手。我从Git中心下载了Qt项目存储库,并试图在我的Ubuntu 14.04上构建它。当我试图编译它时,我发现了一些错误。我使用Qt5和项目文件至少有5年的历史。代码如下,

#include <QtGui>
#include "mainwindow.h"        
MainWindow::MainWindow(QWidget *parent)
    : QDialog(parent)
{
showMaximized();
A = new FiniteElements;
B = new QwtBeginner;
browseButton = createButton(tr("&Open"), SLOT(browse()));
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(B, 0, 0);
mainLayout->addWidget(browseButton, 0, 1);
setLayout(mainLayout);
setWindowTitle(tr("L4V14_oapsois by Mikhail Krishtop"));
}
void MainWindow::browse()
{
QString filepath = QFileDialog::getOpenFileName(this,tr("Select input      datafile"),QDir::currentPath());
if (!filepath.isEmpty()) {
    std::string str = std::string(filepath.toAscii().data());
    const char * stuff = str.c_str();
    A->SetFN(stuff);
    A->evaluate();
           B->eval(A->GetXArray(),A->GetYArray(),A->GetN(),A->GetTriangles(),stuff,
            A->GetTArray(),A->GetX(),A->GetY(),A->GetResultTemp());
}
}
QPushButton *MainWindow::createButton(const QString &text, const char *member)
{
QPushButton *button = new QPushButton(text);
connect(button, SIGNAL(clicked()), this, member);
return button;
}

我得到了以下错误,
错误:未在此空间声明QGridLayout
错误:未声明QFileDialog
错误:无效使用不完整类型'class QPushButton'

有人能帮我吗?^

尝试包含缺失的标头

    #include <QGridLayout>
    #include <QFileDialog>
    #include <QPushButton>

您缺少了许多包含,请注意,QtGui不提供QGridLayoutQFileDialogQPushButton。根据Qt文档:

Qt GUI模块提供了窗口系统集成的类,事件处理,OpenGL和OpenGL ES集成,2D图形,成像、字体和排版。这些类在内部由Qt的用户界面技术,也可以直接使用,为使用低级OpenGL ES图形编写应用程序的实例api。

请参阅此处查看QtGui中包含的类的完整概述。因此在结论中,正如指出的那样。@HAG,您需要添加以下内容:

#include <QGridLayout>
#include <QFileDialog>
#include <QPushButton>

或者,您可以只包含QtWidgets类,它将为您提供所有这些类。

#include <QtWidgets>

请参阅此处,以获得包含QtWidgets的可用类的完整概述。