使用信号槽

Posted wangbin-heng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用信号槽相关的知识,希望对你有一定的参考价值。

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>");

 

以上是关于使用信号槽的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5信号与槽用法进阶

Qt for python 的信号槽机制使用

Qt c++ 信号槽不能正常工作

Qt信号与槽自动关联机制

Qt for python 的信号槽机制使用

qt信号和槽机制的问题