我是编程新手。我从Git中心下载了Qt项目存储库,并试图在我的Ubuntu 14.04上构建它。当我尝试编译它时,出现了一些错误。我正在使用Qt5,并且项目文件至少有5年历史。 代码是如下,C++ Qt Creator项目编译错误
#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'
任何人都可以帮助我吗? ^
谢谢@Gio。有效。但是,我收到了另一个错误消息,错误:'class QString'没有名为'toAscii'的成员。你能解决它吗? ^ – user294664
@ user294664,请提供信用的有用答案。我建议你在使用Qt时,总是要打开文档来检查事情。例如。一个QString没有名为'toAscii'的成员,正如你的错误信息所示,你可以通过查看QString文档[here](http://doc.qt.io/qt-5/qstring.html)来检查。 – Gio
,对不起。我不明白你提到的信用系统,因为我是新手入手。我还没有理解编写一个好程序的技巧。我问过关于qmake的另一个问题。你可以试试吗? – user294664