Why QObject::sender() returns null with QSignalMapper?

Viewed 479

I am using QSingalMapper for multiple QSlider and QCheckBox both are working fine.I want to check signal sources in slot.But QObject::sender(); always returns NULL;

  void MainWindow::UpdateTempValues(int val)
  {
     QSlider *m_slider = qobject_cast<QSlider*>(QObject::sender());
      if(m_slider)
           ui->label_34->setText(QString::number(m_slider->value()));
  }
    QSignalMapper *checkBoxMapper = new QSignalMapper(this);
    QList <QSlider *> SliderList = this->findChildren <QSlider *>();
    QList <QCheckBox *>CheckBoxList = this->findChildren<QCheckBox *>();

    connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(UpdateTempValues(int)));
    connect(checkBoxMapper, SIGNAL(mapped(int)), this, SLOT(UpdateInOuConfigRegisters(int)));

    foreach(QSlider *w, SliderList) {
                   signalMapper->setMapping(w,SignalMaperID);
                   connect(w, SIGNAL(valueChanged(int)), signalMapper, SLOT(map()));
                   SignalMaperID++;
            }
    SignalMaperID = 0;
    foreach(QCheckBox *c,CheckBoxList){
               checkBoxMapper->setMapping(c,SignalMaperID);
               connect(c, SIGNAL(stateChanged(int)), checkBoxMapper, SLOT(map()));
               SignalMaperID++;
    }
0 Answers
Related