Warum funktioniert das nicht?
Code: Alles auswählen
// h - File:
#ifndef SIMPLECALC_H
#define SIMPLECALC_H
#include<QSignalMapper>
#include <QtGui/QWidget>
namespace Ui
{
class simpleCalcClass;
}
class simpleCalc : public QWidget
{
Q_OBJECT
public:
simpleCalc(QWidget *parent = 0);
~simpleCalc();
private:
Ui::simpleCalcClass *ui;
// soweit alles klar, aber jetzt:
// ++++++++++++
public slots:
void slotButtonClicked(int);
private:
QSignalMapper *myMapper;
// ++++++++++++
};
#endif // SIMPLECALC_H
// Ende *.h
Code: Alles auswählen
// cpp-File:
#include "simplecalc.h"
#include "ui_simplecalc.h"
simpleCalc::simpleCalc(QWidget *parent)
: QWidget(parent), ui(new Ui::simpleCalcClass)
{
ui->setupUi(this);
// soweit alles klar, aber jetzt:
QSignalMapper *myMapper = new QSignalMapper(this);
myMapper->setMapping(ui->btnPlus, 1);
myMapper->setMapping(ui->btnMinus,2);
QObject::connect(ui->btnPlus , SIGNAL(clicked()), myMapper, SLOT(map()));
QObject::connect(ui->btnMinus, SIGNAL(clicked()), myMapper, SLOT(map()));
QObject::connect(myMapper, SIGNAL(mapped(int)), this, SLOT(slotButtonClicked(int)));
}
simpleCalc::~simpleCalc()
{
delete ui;
}
void slotButtonClicked(int a)
{
...
}
// Endees gibt ne Fehlermeldung:
moc_simplecalc.cpp:66: undefined reference to simpleCalc::slotButtonClicked(int)
Ziel ist es, zwei Knoepfe mit einem Slot zu verbinden, dessen Funktion dann indiziert arbeitet (switch oder so). Die GUI ist wie man sehen kann mit dem creator erstellt.
Danke für jede Hilfe.
Code: Alles auswählen