关于QT中跨线程的信号处理有关问题,求大神

关于QT中跨线程的信号处理问题,求大神!
说明如下:
1. Receiver对象生存在主线程,主线程拥有事件循环;
2. Receiver对象生存期足够长;
3. connect函数调用成功,连接类型缺省为autoConnection, 对于跨线程的信号,将会自动使用队列连接;
4. 信号确实发送,emit threadSignal();语句确实执行了;
5. Receiver对象所在线程(主线程)界面响应正常,事件循环没有阻塞;
6. 问题是槽函数从来都没有执行过?纠结其原因。。。

望大神解惑


class MyThread : public QThread
{
    Q_OBJECT

public:
    MyThread();

    void run()
    {
        emit threadSignal();
    }

signals:
    void threadSignal();
};


class Receiver : public QObject
{
    Q_OBJECT

public:
    Receiver()
    {
        MyThread * thread = new MyThread;
        connect(thread, SIGNAL(threadSignal()), this, SLOT(slotFunc()));
        thread->start();
    }

private slots:
    void slotFunc()
    {
        qDebug() << "receive one signal.";
    }
};


------解决方案--------------------
引用:
说明如下:
1. Receiver对象生存在主线程,主线程拥有事件循环;
2. Receiver对象生存期足够长;
3. connect函数调用成功,连接类型缺省为autoConnection, 对于跨线程的信号,将会自动使用队列连接;
4. 信号确实发送,emit threadSignal();语句确实执行了;
5. Receiver对象所在线程(主线程)界面响应正常,事件循环没有阻塞;
6. 问题是槽函数从来都没有执行过?纠结其原因。。。

望大神解惑


class MyThread : public QThread
{
    Q_OBJECT

public:
    MyThread();

    void run()
    {
        emit threadSignal();
    }

signals:
    void threadSignal();
};


class Receiver : public QObject
{
    Q_OBJECT

public:
    Receiver()
    {
        MyThread * thread = new MyThread;
        connect(thread, SIGNAL(threadSignal()), this, SLOT(slotFunc()));
        thread->start();
    }

private slots:
    void slotFunc()
    {
        qDebug() << "receive one signal.";
    }
};



其实你可以去看下Qt的帮助文档是怎么实现多线程的,看了你就懂了。
http://qt-project.org/doc/qt-5.0/qtcore/qthread.html