QSignalMapper
Verfasst: 7. April 2009 22:30
bestimmt ne Anfängerfrage, aber das entspricht meinem Status:
Warum funktioniert das nicht?
es 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.
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