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同理。不进行赘述。



posted on 2020-05-17 16:56  流若浅  阅读(3455)  评论(0编辑  收藏  举报

导航