qt connect 用法 涉及Lambda

Posted liuruoqian

tags:

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

 

简单剖析一下:connect,可以信号---槽,信号---信号

qt4.x,实际上用的是SIGNAL,SLOT这两个宏

  [static] QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)

 

connect返回bool判断是否连接成功

 

qt5.x

[static] QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type = Qt::AutoConnection)

连接过程中connect自行判断

 

拓展:

若槽实现比较简单可以使用匿名函数lambda实现

 

QObject::connect(lineEdit, &QLineEdit::textChanged, [=](QString data){

              if(!data.isEmpty())

                qDebug()<<data<<endl;

        });

data这是之前信号发过来的参数

或者不带参数
    connect(sendBtn,&QPushButton::clicked, [=](){
                   qDebug()<<"123"<<endl;}
            );

Qt4.x同理。不进行赘述。


以上是关于qt connect 用法 涉及Lambda的主要内容,如果未能解决你的问题,请参考以下文章

QT connect函数的用法

Qt5中的lambda表达式和使用lambda来写connect

Qt 连接:使用 Lambda 表达式重置传递的 int 变量(奇怪)

matlab中connect函数用法

Qt C++ 将带有非空签名的信号连接到 lambda

qt 5信号和槽的新形式,附带lambda表达式在这里的应用(偷懒的神器) qt官方蓝牙的btcha这个demot的个人解读