помогите правильно реализовать кнопку next...
создал проект qt widget с файлами:
main.cpp, third.h, third.cpp, rod.h, rod.cpp
вот их листинг:
#include "third.h"
#include <QApplication>
#include "rod.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Third w;
QString str;
Rod r1;
str = r1.info();
w.on_nextButton_clicked(str);
QString str1;
Rod r2(3);
str1 = r2.info();
w.on_nextButton_clicked(str1);
Rod r3;
QString str3 = r3.info();
w.on_nextButton_clicked(str3);
w.show();
return a.exec();
}
#ifndef THIRD_H
#define THIRD_H
#include <QWidget>
namespace Ui {
class Third;
}
class Third : public QWidget
{
Q_OBJECT
friend int main(int argc, char *argv[]);
public:
explicit Third(QWidget *parent = 0);
~Third();
private slots:
void on_nextButton_clicked(QString &str);
private:
Ui::Third *ui;
void loadText();
};
#endif // THIRD_H
#include "third.h"
#include "ui_third.h"
#include "rod.h"
Third::Third(QWidget *parent) :
QWidget(parent),
ui(new Ui::Third)
{
ui->setupUi(this);
loadText();
}
Third::~Third()
{
delete ui;
}
void Third::loadText()
{
}
void Third::on_nextButton_clicked(QString &str)
{
ui->textEdit->append(str);
}
#ifndef ROD_H
#define ROD_H
#include "third.h"
class Rod
{
public:
Rod();
Rod(int);
~Rod();
QString info();
private:
int length;
};
#endif // ROD_H
#include "rod.h"
Rod::Rod() :length(2) {}
Rod::Rod(int l) : length(l) {}
Rod::~Rod() {}
QString Rod::info()
{
QString str = "Длина удочки: " + (QString::number(length)) + " метра.";
return str;
}
аутпут сообщает:
Starting /home/andreykapas/build-third-Desktop-Debug/third...
QMetaObject::connectSlotsByName: No matching signal for on_nextButton_clicked(QString&)
/home/andreykapas/build-third-Desktop-Debug/third exited with code 0
программа запускается, но все три строки выводятся сразу( а хотелось бы, чтобы каждая выводилась только по нажатию Next...