qt中常用lambda表达式

2023-11-04

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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • (2021,FastGAN)用于高保真 few-shot 图像合成的更快、更稳定的 GAN 训练

    Towards faster and stabilized gan training for high fidelity few shot image synthesis 公众号 EDPJ 目录 0 摘要 1 简介 2 相关工作 3 方法
  • 在windows中ohmyzsh 的powerlevel10k主题及插件推荐

    1 安装powerlevel10k git clone https github com romkatv powerlevel10k git ZSH CUSTOM themes powerlevel10k 配置ohmyzsh 主题 vim
  • Java初识泛型

    目录 一 包装类 1 基本数据类型和对应的包装类 2 装箱和拆箱 3 自动装箱和自动拆箱 二 什么是泛型 三 引出泛型 1 泛型的语法 四 泛型类的使用 1 语法 2 示例 3 类型推导 Type Inference 六 泛型如何编译的 1
  • 计算机组成原理题库(2)

    计算机网络题库 目录 计算机网络题库 1 选择题 2 填空题 3 分析判断题 可能会有重复 大家跳着看 4 计算题 5 简述题 1 选择题 1 总线通信中 若发送方和接收方设备的速度有差异 但不是特别大 则最适合选择 时序控制方式 A 同步
  • unity打开VS2017异常解决 unity打开VS2017很慢 unity只打开mono

    早几天开始安装了VS2017 关联好unity 但后续使用编译脚本时 发现经常打开很慢 最后总是打开mono 检查过自己的关联没有错误 也试着修复了几次VS 上网搜了几遍 连老外的网站都看了 最后找到的解决方案是更换成VS2015 原因在于
  • PyTorch深度学习实战(8)——批归一化

    PyTorch深度学习实战 8 批归一化 0 前言 1 批归一化原理 2 批归一化优势 3 批归一化对模型训练的影响 3 1 未使用批归一化 且输入值较小 3 2 使用批归一化 且输入值较小 3 3 使用批归一化 且输入值较大 小结 系列链
  • element ui自定义主题

    一 在element ui 里找到自定义主题 1 1 在自定义主题 设置对应的颜色 并下载 1 2 在项目目录下安装element theme element theme chalk npm i element theme chalk 2
  • virtio sr-iov

    虚拟机规格 12核 32G内存 负载模拟 利用bc将CPU所有核占用提高的98 echo scale 500000 4 a 1 bc l q VirtIO 9 37 Gbps 4 5 12 SR IOV 9 40 Gbps 4 5 7 低负
  • 蓝桥杯单片机组经验分享之(一)引言

    一 开篇激励 蓝桥杯单片机组真的是非常容易拿奖的 尤其是省赛 水军特别多 结合我以及我的师兄师姐的参赛经验 基本上编程题全部完成就能保证省一了 至少广东是这情况 至于想拿国一的话得靠平时专业知识的积累了 只靠程序高分是拿不到国一的 第八届我
  • 小程序使用 企业微信客户服务插件(联系我) contactPlugin

    小程序插件接入步骤 1 开发者在小程序管理后台申请使用插件 添加路径 设置 gt 第三方服务 gt 插件管理 gt 添加插件 搜索并添加插件ID wx104a1a20c3f81ec2 无需审核确认 设置 第三方服务 插件管理 添加插件 2
  • 【Linux初阶】信号入门

    hello 各位读者大大们你们好呀 系列专栏 Linux初阶 本篇内容 Linux信号的基本概念 生活信号 技术信号 信号生命周期 信号的保存位置和发送本质 信号的产生 四种方式 一个系统调用接口 作者简介 计算机海洋的新进船长一枚 请多多
  • vue自定义指令-加载指令v-loading和占位图指令v-showimg

    了解自定义指令的钩子函数 bind 每当指令绑定到元素上的时候 就会立刻执行bind这个函数 只调用一次 和css相关的操作 可以放在这个钩子函数中 inserted 元素插入到DOM中的时候 会执行inserted函数 只调用一次 upd
  • 狂神说SpringMVC02:第一个MVC程序

    狂神说SpringMVC系列连载课程 通俗易懂 基于Spring5版本 视频同步 欢迎各位狂粉转发关注学习 未经作者授权 禁止转载 Hello SpringMVC 在上一节中 我们讲解了 什么是SpringMVC以及它的执行原理 狂神说Sp
  • 图片隐写术 - 透明部落通过BMP的RGB通道隐藏PE数据

    透明部落通过BMP的RGB通道隐藏PE数据 报告和样本 Transparent Tribe APT expands its Windows malware arsenal https blog talosintelligence com 2
  • HASHGRAPH 共识算法详解

    英文版地址 http www swirlds com downloads SWIRLDS TR 2016 02 pdf 摘要 本文通过hashgraph上的一系列例子来说明Swirld hashgraph共识算法 通过结合图形来解释算法详细
  • BP神经网络实例(气温预测)及代码分析(python+tensorflow实现)

    https blog csdn net MrMaurice article details 90031937
  • 一个三本负基础学渣是怎么入行前端的?

    学渣简历 院校 上海杉达学院 上海第一第二的本科 当然是倒数 三本 专业 计算机科学与技术 根本不教前端 毕业时间 2017年 大学学到的知识 如何逃课不被点名 为什么选择计算机科学与技术专业 是喜欢男生吗 纯属巧合 我心仪的专业是护士专业
  • 增量集成测试和非增量集成测试

    增量集成测试 集成是逐步实现的 即逐次将未曾集成测试的模块和已经集成测试的模块 或 子系统 结合成程序包 再将这些模块集成为较大系统 在集成的过程中边连接边测试 以发现连接过程中产生的问题 分为 自顶向下增量式测试 自底向上增量式测试 混合
  • java 判断文件夹是否存在 没有则创建_java中实现判断文件是否存在,不存在则创建...

    一 判断文件是否存在 不存在则创建File file new File d test txt if file exists try file createNewFile catch IOException e e printStackTra
  • qt中常用lambda表达式

    qt中lambda表达式 什么是lambda 个人理解 没有函数名的函数 qt中使用基础 备注 都是在qt5中做的使用 我的qt版本是qt5 11 3 pro文件中 config c 11 常见的lambda表达式使用 延时执行操作 举例