本文介绍: (注意,[&amp;]这里前面不用加&amp;,即这种表达式&amp;[&amp;]是错误的)第二个参数&amp;QPushButton::clicked:表示对象包含信号(该信号隐藏参数,实际上在槽函数仍然可以调用信号参数列表);该connect只有三个参数,在三个参数情况下,默认第三个槽函数对象是本类this,也就是第三参数this被省略了。(bool):函数参数列表,该参数列表接收信号参数列表,也就是等于信号signal的参数列表第三个参数:[&amp;](bool){qDebug()<<"device=="<<device};

面是对Qt中在QObject::connect()中的lambda表达式常用用法
QString str(“I am a string!”);
device=str;
connect(ui

connect(m_imgshowUI, &amp;ImgShow::GetImgPath, m_visionplatform, [=](const std::string filename){m_visionplatform-&gt;ReadImg(filename);});

PushButton::clicked,[&amp;](bool){qDebug()<<“device==”<<device;});
表达式详解

a1 第一个参数含义
一个参数ui-&gt;pushButton:表示对象

a2 第二个参数含义
第二个参数&amp;QPushButton::clicked:表示对象包含信号(该信号隐藏参数,实际上在槽函数仍然可以调用信号参数列表);

a3 第三个参数含义
第三个参数:[&amp;](bool){qDebug()<<“device==”<<device};

connect只有三个参数,在三个参数情况下,默认第三个槽函数对象是本类this,也就是第三个参数this被省略了。

[&amp;]中的&amp;:表示调用this作用域内任何参数;一般是全局变量,不能是局部变量,否则局部变量会用完销毁,调用就会出现内存错误,程序奔溃!(注意,[&amp;]这里前面不用加&amp;,即这种表达式&amp;[&amp;]是错误的)

(bool):函数参数列表,该参数列表接收了信号参数列表,也就是等于信号signal的参数列表

{qDebug()<<“device==”<<device}:函数体,将函数要执行代码写在这里;
 

原文地址:https://blog.csdn.net/cyy1104/article/details/134556446

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_17649.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注