title: Qt C++: static assertion failed: Signal and slot arguments are not compatible
body: <p>I am trying to start a countdown timer in a workerthread when the user clicks a pushbutton. The value at which the timer starts the count down depends on the selected radius button from my GUI.</p>
  
  <p>I use a signalmapper to pass the starting value from the timer as a parameter. However I get this error when trying to compile my code:</p>
  
  <pre><code> static assertion failed: Signal and slot arguments are not compatible
  </code></pre>
  
  <p>My code:</p>
  
  <pre><code>MainWindow::MainWindow(QWidget *parent) :
      QMainWindow(parent),
      ui(new Ui::MainWindow)
  {
  
      connect(ui-&gt;btnTakeSnap, SIGNAL(clicked()), this, SLOT(startTimerWorker()) );
  
  }
  
  void MainWindow::startTimerWorker()
  {
      myThread = new QThread(this);
      workerObj = new workerTimer();
  
      QSignalMapper* signalMapper = new QSignalMapper (this) ;
  
      connect(myThread, &amp;QThread::started, signalMapper, SLOT(map()) );
      if(ui-&gt;rdBtntimer1s-&gt;isChecked())
      {signalMapper -&gt; setMapping (myThread, 1000) ; }
  
      if(ui-&gt;rdBtntimer3s-&gt;isChecked())
      {signalMapper -&gt; setMapping (myThread, 3000) ;  }
  
      if(ui-&gt;rdBtntimer5s-&gt;isChecked())
      {signalMapper -&gt; setMapping (myThread, 5000) ;}
  
      connect(signalMapper, SIGNAL(mapped(int)), workerObj, SLOT(&amp;workerTimer::countDown(int)));
  
      workerObj-&gt;moveToThread(myThread);
      myThread-&gt;start();
  
  }
  
  
  class workerTimer : public QObject
  {
      Q_OBJECT
  public:
      explicit workerTimer(QObject *parent = nullptr);
  
  signals:
  
  public slots:
      void countDown(int selectedTimer);
  };
  </code></pre>
  
  <p>Could someone explain me what I may be doing incorrectly?</p>
  
  <p>Thanks</p>