QTimer::singleShot使用宏定义方法和函数指针方法导致执行结果不一样。

问题遇到的现象和发生背景

在线程里使用QTimer::singleShot时,不同的写法会导致不同的结果,下面是代码

问题相关代码,请勿粘贴截图
          //这种写法就可以执行
          QTimer::singleShot(1000, this, [this]() {
            qDebug() <<"******"<< __FUNCTION__ << QThread::currentThread();
        });
        //这种写法也可以执行,他和上面的lambda表达式一样,是传递的函数指针
        QTimer::singleShot(1000, this,&CTestThread::timeOutTest);
        //无法执行timeOutTest函数
        QTimer::singleShot(1000, this,SLOT(timeOutTest()));
运行结果及报错内容

按理说这个线程里没有事件循环,应该不会执行槽函数啊,但是使用函指针那种方式,槽函数就可以被执行,这里我不太明白,祈求有了解的老哥指导一下。

我的解答思路和尝试过的方法
我想要达到的结果