我是編程新手。我從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