title: QTimer::singleShot() looks for the specified slot in the given object's parent class, not the object itself
body: <p>I am fairly new to Qt. I have done some simple modifications to an existing Qt application, but I haven't created any from scratch yet.<br>
  I also don't have really much experience with certain aspects of C++ in general (class inheritance etc).  </p>
  
  <p>I have created a new Code::Blocks Qt4-based project and modified the template a bit. I have added two files.<br>
  Right now the project contains three files: main.cpp, app.h and app.cpp.<br>
  This is the content of <strong>main.cpp</strong>:</p>
  
  <pre><code>#include &lt;QTimer&gt;
  
  #include "app.h"
  
  int main(int argc, char* argv[]) {
      TestApp app(argc, argv);
  
      QTimer::singleShot(1000, &amp;app, SLOT(timeout()));
  
      return app.exec();
  }
  </code></pre>
  
  <p>This is what <strong>app.h</strong> looks like:</p>
  
  <pre><code>#ifndef APP_H_INCLUDED
  #define APP_H_INCLUDED
  
  #include &lt;QApplication&gt;
  
  class TestApp: public QApplication {
      public:
      TestApp(int &amp;argc, char **argv);
      public slots:
      void timeout();
  };
  
  #endif
  </code></pre>
  
  <p>And this is <strong>app.cpp</strong>:</p>
  
  <pre><code>#include "app.h"
  
  #include &lt;QDebug&gt;
  
  TestApp::TestApp(int &amp;argc, char **argv): QApplication(argc, argv) {
  }
  
  void TestApp::timeout() {
      qDebug() &lt;&lt; "timeout called";
  }
  </code></pre>
  
  <p>I expected the program to print "timeout called" one second after startup. Unfortunately, this doesn't work. When <code>QTimer::singleShot()</code> is called, the console says:</p>
  
  <pre><code>Object::connect: No such slot QApplication::timeout() in [path to the main.cpp file]
  Object::connect:  (receiver name: 'QtTests')
  </code></pre>
  
  <p>I have no idea how to deal with this. Thank you in advance.</p>