退出之前重新输入功能

时间:2016-06-10 00:03:24

标签: c++ qt function connection signals

我有一个发出信号test()

的功能sig()
class Game:
{
public: 
   Game();
   void test() 
       {.... 
        emit sig();
        connect(this,SIGNAL(sig()),this,SLOT(test()));
       };

signals:
    void sig();
}

我知道此代码无效且程序崩溃,因为connect在退出之前重新进入test()

test()发出该信号时,我想退出test()并重新启动它,这是可能的吗?

1 个答案:

答案 0 :(得分:0)

使用connect(this,SIGNAL(sig()),this,SLOT(test()), Qt::QueuedConnection);。该信号将使用线程的事件队列调度一个调用。