QSignalMapper

Alles rund um die Programmierung mit Qt
Antworten
mustermann.klaus
Beiträge: 23
Registriert: 6. April 2009 12:21
Wohnort: Berlin

QSignalMapper

Beitrag 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.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: QSignalMapper

Beitrag 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...)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ach Leute, noch nie was von Formatierung gehört?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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 :(
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich meinte nicht deinen Beitrag, sondern den von Mustermann.Klaus. Einrückung scheint da ein Fremdwort zu sein.
mustermann.klaus
Beiträge: 23
Registriert: 6. April 2009 12:21
Wohnort: Berlin

Beitrag 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...
Antworten