c++ - C++ Qt 创建者项目中的编译错误

标签 c++ qt

我是编程新手。我从 Git hub 下载了 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”

有人可以帮助我吗? ^

最佳答案

尝试包含缺少的 header

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

关于c++ - C++ Qt 创建者项目中的编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39334315/

相关文章:

c++ - 在 QWidget 的子类中调用 width()、height()、size() 或 rect() 以段错误结束

C++ #include 守卫

c++ - 在 C++ 中绘制到屏幕上的一个好的库是什么?

c++ - 相同的测试用例,但 codeblocks 和 Ideone 上的输出不同

qt - 如何在 QML 项目中显示本地目录中的多个图像?

c++ - QT 小部件与 QT GUI

c++ - QNetworkAccessManager 多次上传失败

c++ - 背景更改时带有非 native 滚动条的 QTreeWidget

c++ - 在 C++ 运算符 << 重载中使用友元函数访问私有(private)成员时遇到问题

c++ - 在 Qt 中的数据类(模型)和 View / Controller 类之间传递数据的正确方法是什么?