当前位置: 首页 > news >正文

【Qt】信号和槽(三) (断开连接和lambda函数)

信号与槽断开连接

使用disconnect函数,与connect的用法类似。
示例:



按过按钮二后:

实际开发中disconnect的使用较少,大部分情况是把信号和槽连接好后就不再关心。这里用disconnect的场景是主动断开当前信号所连接的槽函数,然后信号再重新连接绑定到另一个槽函数上。
若不断开,则会有两个日志的打印。

lambda表达式定义槽函数

lambda表达式本质是一个匿名函数,主要在回调函数中进行使用。通常是一次性的,也可以用auto识别函数类型,延长生命周期进行调用。
示例:

ambda除了可以按照传值捕获[button],[=]的方式捕获变量,还能按照传引用捕获[&]的方式捕获变量,但Qt中很少用传引用的方式=,因为在Qt中捕获的变量一般是各种控件的指针,指针变量传值或传引用都可以。按引用捕获有致命问题。
按引用捕获的变量,需要关注其生命周期。例如,局部指针变量 button 在构造函数结束时就被销毁,可能被置为 nullptr。若 lambda 按引用捕获了 button,构造函数结束后 button 已为空。此时用户点击按钮触发 lambda,访问空指针会导致程序崩溃。

因此,按引用捕获风险大。按值捕获会拷贝指针指向的堆地址,即使外部指针被置空,lambda 内部的拷贝仍然有效。实际开发中,建议尽量使用值捕获。

http://www.rkmt.cn/news/1498873.html

相关文章:

  • Redis 新手入门:从命令行掌握 String、Hash、List、Set、ZSet 和常用操作
  • 详解HTTP中的URL
  • 小程序毕设选题推荐:基于springboot+微信小程序的文化旅游小程序系统文化景区旅游微信小程序【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 03-状态管理与路由——01-Context + useReducer 模式
  • 网安学习笔记一阶段08——计算机网络基础安全3
  • 【INACCESSIBLE_BOOT_DEVICE】安装 Config Tool 后 Windows 蓝屏,最终通过 VMware 虚拟机解决
  • 徐州懂事星球推荐门店
  • AI 时代,IT 职业教育如何为学习者赋能?——职坐标的 AI+教育实践
  • 什么是 AI 算能基础设施?企业如何选型
  • 2026年执业药师资格考试高频易错题库精编(第005卷)
  • 手把手教你用TI官方库函数重构F28377x CAN代码:告别裸写寄存器
  • Glint:把碎片信息真正变成你的 Obsidian 知识库
  • 从语音合成项目实战出发:手把手教你用 MFA 对齐自己的中文语音数据集
  • 极简日常记录工具:生活备忘、各类提醒全部安排妥当
  • 飞书+龙虾!摄影师局域网外使用龙虾实例!
  • stm32f407读取ov7670(无FIFO)图像灰度值
  • 2026思维导图工具实测:7款主流工具横向对比,按场景选型不踩坑
  • 避开这些坑!DS1302与蓝桥杯单片机I/O冲突的排查与解决实录
  • 机器学习工程师必须掌握的PDF与CDF实战指南
  • NSK VH20AN高防尘直线导轨技术手册
  • 拆开一个烧坏的IGBT模块,手把手教你识别过压、过流、过温的“案发现场”
  • 2026南昌市民常去贵金属回收实体店实测整理 黄金铂金白银回收正规商家前五榜单 - 诚金汇钻回收公司
  • ARM7TDMI-S经典架构解析:LPC2377/78嵌入式系统设计与外设实战
  • 深耕甬城十载 赋能数字转型——宁波森迈商务信息咨询有限公司打造全域小程序综合服务标杆 - 资讯速览
  • PIR、PSI、OT…傻傻分不清?一文讲透隐私计算中几个易混淆的“查询”协议
  • CPS总线安全:GRACYBUS组密钥协议设计与实现
  • 一本书读懂微积分!
  • 不止于点灯:用STM32H7的复杂时钟树驱动高精度外设(CubeMx配置SPI/I2S实战)
  • 从‘玻璃丝’到‘信息高速公路’:用大白话图解光纤通信的核心原理(附公式推导避坑指南)
  • LPC2468低功耗与电气特性实战:从数据手册到稳定设计