Seite 1 von 1

QSignalMapper

Verfasst: 7. April 2009 22:30
von mustermann.klaus
bestimmt ne Anfängerfrage, aber das entspricht meinem Status:

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)
{
    ...
}
// Ende

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.

Re: QSignalMapper

Verfasst: 7. April 2009 22:43
von franzf
mustermann.klaus hat geschrieben:es gibt ne Fehlermeldung:

moc_simplecalc.cpp:66: undefined reference to simpleCalc::slotButtonClicked(int)
Tja, was steht denn da in deinem cpp-file?

Code: Alles auswählen

void slotButtonClicked(int a)
{
    ...
}
:D
Fehler darfst du selber finden :P
(Ein Vergleich mit anderen Methoden in deinem cpp sollte den entscheidenden Hinweis geben...)

Verfasst: 7. April 2009 22:46
von upsala
Ach Leute, noch nie was von Formatierung gehört?

Verfasst: 7. April 2009 22:49
von franzf
upsala hat geschrieben:Ach Leute, noch nie was von Formatierung gehört?
schon - die tags stehen doch drinnen.
Aber scheinbar wurde BBCode für diesen Beitrag (vllt. per profile?) deaktiviert. Schön zu lesen ist es aber echt nicht :(

Verfasst: 7. April 2009 23:13
von upsala
Ich meinte nicht deinen Beitrag, sondern den von Mustermann.Klaus. Einrückung scheint da ein Fremdwort zu sein.

Verfasst: 8. April 2009 08:17
von mustermann.klaus
Danke an franzf. :oops:

An die Threadpolizei: Mit der Einrückung tut mir leid. Is mein erstes Post in diesem Forum. BBCode ist aktiviert worden, und so...