Signal mapper funktioniert nicht



  • Hallo,

    ich habe eine GUI, die viele Buttons besitzt. Da die Buttons ähnliches machen, wollte ich alle an einen Slot schicken. Dazu wollte ich Signalmapper nutzen, doch dies funktioniert nicht. Vielleicht hat einer eine Idee, da ich weder mit der Doku noch mit google erfolgreich war.

    Meine Mainwindow.cpp

    [code] 
    
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QDebug>
    #include <qdebug.h>
    #include <QtGui>
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        theMapper = new QSignalMapper(this);
    
       connect(ui->pushButton, SIGNAL(clicked()), theMapper, SLOT(map()));
    
       theMapper->setMapping(ui->pushButton, 1);
    
       connect(theMapper,SIGNAL(mapped(int)),this, SIGNAL(clicked(int)));
    
    }
    
    void MainWindow::slot(int i)
    {
        qDebug() << i;
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    

    und meine Header-Datei

    [code]
    
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include <QtGui>
    #include <QGridLayout>
    #include <QSignalMapper>
    #include <QPushButton>
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    public slots:
    void slot(int i);
    
    protected:
    
    private:
        Ui::MainWindow *ui;
    
       QSignalMapper *theMapper;
    };
    
    #endif // MAINWINDOW_H
    


  • Weil dein SLOT slot heißt und nicht clicked. Außerdem ist es ein SLOT und kein SIGNAL.



  • Hallo,

    hab es geändert und es hat geklappt. Ich war wohl unaufmerksam. Danke für die Hilfe!


Anmelden zum Antworten