qt中lambda表达式

什么是lambda

个人理解:没有函数名的函数

qt中使用基础

备注:都是在qt5中做的使用,我的qt版本是qt5.11.3

pro文件中
config+=c++11

常见的lambda表达式使用(延时执行操作)

举例:通过信号槽将t和tmpImage两个参数传进lambda表达式中,从而实现延时删除文件
方法一:

    QString tmpImg ="~/Picture/xx.png"
QTimer *t = new QTimer(this);
t->setSingleShot(true);
connect(t, &QTimer::timeout, this, [t, tmpImg] {
QFile(tmpImg).remove();
t->deleteLater();
});
t->start(1000);

方法二:更简单的lambda方法

    QString tmpImg ="~/Picture/xx.png"
QTimer::singleShot(1000,[tmpImg]{
QFile(tmpImg).remove();
});

常见的lambda表达式使用(信号槽)

    //Qt不传递参数lambda
connect(this,&lambdaTest::testSingal,this,[=]{
qDebug()<<QString("test");
});
//Qt带传递参数lambda
connect(this,&lambdaTest::testSingal,this,[=](QString path){
qDebug()<<path;
});
//Qt5风格
connect(this,&lambdaTest::testSingal,this,&lambdaTest::testSlot);
//Qt4风格
connect(this,SIGNAL(testSingal(QString)),this,SLOT(testSlot(QString))); QString path="test";
emit testSingal(path); void lambdaTest::testSlot(QString path)
{
qDebug()<<path;
}

如果要加上第五个参数,也是没有问题的

    //Qt不传递参数lambda
connect(this,&lambdaTest::testSingal,this,[=]{
qDebug()<<QString("test");
},Qt::QueuedConnection);
//Qt带传递参数lambda
connect(this,&lambdaTest::testSingal,this,[=](QString path){
qDebug()<<path;
},Qt::QueuedConnection);
//Qt5风格
connect(this,&lambdaTest::testSingal,this,&lambdaTest::testSlot,Qt::QueuedConnection);
//Qt4风格
connect(this,SIGNAL(testSingal(QString)),this,SLOT(testSlot(QString)),Qt::QueuedConnection); QString path="test";
emit testSingal(path);

常见的lambda表达式使用(qt线程)

    QThread * th=QThread::create([=]{
qDebug()<<"test";
});
connect(th,&QThread::destroyed,th,&QThread::deleteLater);
th->start();

qt中常用lambda表达式的更多相关文章

  1. Qt5中使用lambda表达式

    c11新特性中加入了lambda表达式,所以Qt 也支持 需在.pro文件中加入 CONFIG += c++11 例子: QString program = "C:/Windows/Syst ...

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

    c11新特性中加入了lambda表达式,所以Qt 也支持 需在.pro文件中加入 CONFIG += c++11 例子: QString program = "C:/Windows/Syst ...

  3. 你知道C#中的Lambda表达式的演化过程吗

    你知道C#中的Lambda表达式的演化过程吗? 阅读目录 委托的使用 匿名方法 Func和Action Lambda的诞生 那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西 ...

  4. C#中的Lambda表达式和表达式树

    在C# 2.0中,通过方法组转换和匿名方法,使委托的实现得到了极大的简化.但是,匿名方法仍然有些臃肿,而且当代码中充满了匿名方法的时候,可读性可能就会受到影响.C# 3.0中出现的Lambda表达式在 ...

  5. C++11中的Lambda表达式

    原文地址:C++中的Lambda表达式 作者:果冻想 一直都在提醒自己,我是搞C++的:但是当C++11出来这么长时间了,我却没有跟着队伍走,发现很对不起自己的身份,也还好,发现自己也有段时间没有写C ...

  6. Lambda 表达式,Java中应用Lambda 表达式

    一.Lambda 表达式 简单来说,编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数. 链接:知乎 先举一个普通的 Python 例 ...

  7. 在Linq to sql 和 Entity framework 中使用lambda表达式实现left join

    在Linq to sql 和 Entity framework 中使用lambda表达式实现left join 我们知道lambda表达式在Linq to sql 和 Entity framework ...

  8. Android中使用Lambda表达式开发

    参考文章:ImportNew 要在Android开发中使用lambda表达式,首先需要在 Module 的build.gradle中加入: compileOptions { targetCompati ...

  9. 【转】你知道C#中的Lambda表达式的演化过程吗?

    [转]你知道C#中的Lambda表达式的演化过程吗? 那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂. 委托的使用 例一: 什么是委托? 个人理解:用来传 ...

  10. 编写高质量代码改善C#程序的157个建议——建议27:在查询中使用Lambda表达式

    建议27:在查询中使用Lambda表达式 LINQ实际上是基于扩展方法和Lambda表达式的.任何LINQ查询都能通过扩展方法的方式来代替. var personWithCompanyList = f ...

随机推荐

  1. Chrome打开知乎报ERR_HTTP2_PROTOCOL_ERROR错误的问题

    打开 chrome://flags/ 页面 找到 Block insecure private network requests. 和 Enable Trust Tokens 两项 将其值从 Defa ...

  2. uniapp vue3 setup + 云开发开发个人小程序

    最近使用uniapp vue3 setup + 云开发开发了个人小程序,设计使用figma软件,看下成品截图吧(可以直接微信搜索[识光]小程序体验,或者最底部有码可以直接扫)

  3. idea src/main/webapp无法识别为web文件夹

    整理项目的时候发现,在项目是src/main/webapp没有被自动识别为web文件夹. 1.确认你的项目已经转换为maven项目了. 2.确认你的项目的pom.xml文件有配置(只有配置了包类型,才 ...

  4. NumPy学习4

    今天学习NumPy相关数组操作 NumPy 中包含了一些处理数组的常用方法,大致可分为以下几类:(1)数组变维操作(2)数组转置操作(3)修改数组维度操作(4)连接与分割数组操作 numpy_test ...

  5. BUUCTF---old flashion

    1.题目 2.知识 3.解题 很奇怪,一段英文字母,看起来像维吉尼亚,但需要key,不知道什么是Key,我们丢到q爆破中试试 直接得出来了flag:flag{n1_2hen-d3_hu1-mi-ma_ ...

  6. 【手机】三星手机刷机解决SecSetupWizard已停止

    三星手机恢复出厂设置之后,出现SecSetupWizard已停止的解决方案 零.问题 我手上有一部同学给的三星 GT-S6812I,这几天搞了张新卡,多余出的卡就放到这个手机上玩去了.因为是获取了ro ...

  7. 【视频编辑】Pr视频编辑软件导出的视频声音有一段会变大怎么解决

    导出视频后为什么有段声音会突然变大? 也就是可能存在编辑器导出的时候有自动增益声音的行为. 具体描述: 工程文件里我没动过声音,工程文件里听也是很正常的,但是导出后有一小段音乐会突然变大(存在自动增益 ...

  8. 房价预测数据清洗全流程:从数据采集到可视化分析(Python实战)

    在房价预测项目中,数据清洗是至关重要的环节.它不仅决定了模型的准确性,还直接影响后续分析的可靠性.本文将以波士顿房价数据集为例,通过Python的Pandas.Matplotlib等工具,详细讲解数据 ...

  9. C中输入输出

    引入一个概念,对于计算机来说,外来数据都是输入,经过计算机处理的结果并进行显示的就是输出.在linux里面,一切都是文件,就连输入输出,都可以划归到"文件"一类,而为了管理这些文件 ...

  10. cursor的mcp服务器安装(nodejs,npx安装和uv工具安装)

    一.前言: 1.近期MCP服务器非常火爆,作为LLM大模型的通用工具手脚,MCP可以帮助LLM大模型实现更好的功能.本人经常使用cursor来进行代码的编辑,正巧cursor在0.47版本之后,MCP ...