title: QT threads :Getting QObject::startTimer: timers cannot be started from another thread warning
body: <p>I follow the examples from the Qt SDK, starting timer in the <code>QThread</code> Subclass 
  but I keep getting the warning and the thread never starts the timer. 
  Here is the code:</p>
  
  <pre><code>NotificationThread::NotificationThread(QObject *parent)
             :QThread(parent),
             m_timerInterval(0)
  {
   moveToThread(this);
  }
  
  
  NotificationThread::~NotificationThread()
  {
   ;
  }
  
  void NotificationThread::fire()
  {
    WRITELOG("A::fire called -- currentThread:" + QString::number((int)currentThread()-&gt;currentThreadId()));
    QVector&lt;StringPer&gt;* batchVectorResult = new QVector&lt;StringPer&gt;();   
    emit UpdateGroupNotifications(batchVectorResult);
  
  }
  
  void NotificationThread::run()
  {
  
        connect(&amp;m_NotificationTimer, SIGNAL(timeout()),
                this,SLOT(fire(),Qt::DirectConnection));
  
        WRITELOG("A::run() worker thread -- currentThread:" + QString::number((int)currentThread()-&gt;currentThreadId()));
     //SetNotificationTimerFromConf();
     QVariant val(ConfigSettings::getInstance()-&gt;ReadFromSettingsReturnVariant(SETTINGS_KEY_NOTIFICATIONTHREAD));
     int interval = val.toInt();
     m_NotificationTimer.setInterval(interval);
        m_NotificationTimer.start();
  
        QThread::exec();
  }
  
  
  void NotificationThread::SetNotificationTimerFromConf()
  {
   QVariant val(ConfigSettings::getInstance()-&gt;ReadFromSettingsReturnVariant(SETTINGS_KEY_NOTIFICATIONTHREAD));
   int interval = val.toInt();
   m_NotificationTimer.setInterval(interval);
  }
  
  
  void NotificationThread::UpdateNotificationTimerRT(int timerInterval)
  {
   m_NotificationTimer.setInterval(m_timerInterval);
  }
  
  
  void NotificationThread::Execute(const QStringList batchReqList)
  {
   QVector&lt;QString&gt;* batchVectorResult = new QVector&lt;QString&gt;();   
   start();
  }
  </code></pre>
  
  <p>I start the Thread from the main GUI with <code>Execute( )</code>.</p>