使用信号槽

1、跨线程

DataThread *my=new DataThread;//DataThread继承自QObject    好像不能有父对象
QThread *Thread=new QThread;    //    好像不能有父对象

my->moveToThread(thread);
thread->start();
connect(thread, &QThread::started,
    [=]
{
    my->dealData(QList);//子线程开始处理数据
});
connect(my, &DataThread::dealOver,
        this, &Widget::recvDataFromThread,        //子线程处理完数据后,将结果发到主线程
        Qt::QueuedConnection);
        
    注:
        1、销毁线程
            thread->exit(0);
        2、可能无法识别自定义的数据类型,需要在构造函数中注册数据类型。
            #include<QMetaType>
            qRegisterMetaType<QVector<structXYZ>>("QVector<structXYZ>");

 

posted @ 2019-01-22 21:42  雪落梅藏  阅读(101)  评论(0编辑  收藏  举报