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的主要内容,如果未能解决你的问题,请参考以下文章
Qt5中的lambda表达式和使用lambda来写connect
Qt 连接:使用 Lambda 表达式重置传递的 int 变量(奇怪)
qt 5信号和槽的新形式,附带lambda表达式在这里的应用(偷懒的神器) qt官方蓝牙的btcha这个demot的个人解读