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

Qt的信号与槽(三)

Qt的信号与槽(三)

  • 1.disconnect
  • 2.lambda表达式作为槽函数

🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【Qt的学习】
📝📝本篇内容:disconnect;lambda表达式作为槽函数
⬆⬆⬆⬆上一篇:Qt的信号与槽(二)
💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-

1.disconnect

disconnect是和connect相反的,connect是建立连接,因此disconnect是断开连接,一般性在我们的正常使用中不需要断开连接,除非我们需要更换槽函数
disconnect这个函数的参数和connect几乎是一模一样的,因此使用起来非常简单
在这里插入图片描述
我们写一份代码来演示,实现两个按钮,一个按钮来设置窗口标题,一个按钮来修改第一个按钮按下后显示的内容(修改第一个按钮的槽函数)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果说我们不进行disconnect就会导致两个槽函数都会执行
在这里插入图片描述

2.lambda表达式作为槽函数

lambda表达式在很多的编程语言中都有应用,本质上就是一个匿名函数对象,主要应用在回调场景中进行一次性的使用,大大减轻了普通成员函数需要声明的重复工作。
在这里插入图片描述
lambda表达式是一个回调函数,无法直接获取到上层作用域中的变量,因此需要变量捕获,就是[ ]中的内容,如果想要捕获更多的内容,也可以使用[=],将上层作用域的变量名全部捕获进来,如下所示
在这里插入图片描述
我们要特别注意的是变量的生命周期,在代码中我已经用注释标出来了,像this指针就是指向的就是main函数中的Widget局部变量,它会在main函数执行完进行销毁,main执行完,说明程序执行完了,Widget就可以销毁了,this也就可以销毁了,lambda也就用不到它了。
在这里插入图片描述
它的运行结果也是一样的,按钮按下后将按钮和窗口的位置进行移动
对于熟悉C++的同学来说一定也知道这边可以使用引用来捕获变量,但是我们在Qt中很少使用,因为使用的都是控件指针,那么使用引用捕获和值传递的捕获都无所谓,但是如果使用引用捕获也是需要关注它的生命周期,因为引用一般都是给控件的指针变量取别名,但是指针变量它本身出了作用域就销毁了,因此就不太好处理了。
如果对于lambda不是很了解的同学,可以去看我C++专栏中的C++11(中),其中有详细讲解lambda表达式

还有一个点要注意,就是我们现在使用的lambda是C++11中引入的,对于Qt5起步的版本都是默认C++11来编译的,但是Qt4及以下的版本需要手动在.pro文件中加上C++11的编译选项
在这里插入图片描述

🌸🌸Qt的信号与槽(三)大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

http://www.xdnf.cn/news/1090063.html

相关文章:

  • uniapp小程序无感刷新token
  • 【数字后端】- Standard Cell Status
  • 【机器人】Aether 多任务世界模型 | 4D动态重建 | 视频预测 | 视觉规划
  • vue2中使用xgplayer播放流视频
  • Claude Code 开发使用技巧
  • 【Modern C++ Part7】_创建对象时使用()和{}的区别
  • 从0到1:Maven下载安装与配置全攻略
  • vcpkg交叉编译qt等过程记录(未完成)
  • 华为动态路由配置
  • Git基本操作1
  • git 报错fatal: refusing to merge unrelated histories
  • 城市地质大数据平台:透视地下空间,赋能智慧未来
  • 基于物联网的智能家居控制系统设计与实现
  • 从零开始的云计算生活——番外2,MySQL组复制
  • 项目进度管控缺乏闭环,如何形成反馈机制
  • 适老化HMI改造:老年用户界面的字体、触控区域优化策略
  • 想要抢早期筹码?FourMeme专区批量交易教学
  • Kubernetes 存储入门
  • Spring Boot + Vue.js 全栈开发:从前后端分离到高效部署,打造你的MVP利器!
  • NLP自然语言处理04 transformer架构模拟实现
  • 【Java SE】Arrays工具类
  • OpenCV哈希算法------Marr-Hildreth 边缘检测哈希算法
  • 字符串大小比较的方式|函数的多返回值
  • Softhub软件下载站实战开发(十六):仪表盘前端设计与实现
  • 【DOCKER】-2 docker基础
  • 车载以太网-TC8测试-UT(Upper Tester)
  • 基于物联网的智能交通灯控制系统设计
  • RAGflow图像解析与向量化分析
  • 基于模板设计模式开发优惠券推送功能以及对过期优惠卷进行定时清理
  • 文献学习|全面绘制和建模水稻调控组景观揭示了复杂性状背后的调控架构。