QT信号量与槽

文章目录

  • 概述
    • 用系统生成
    • 新增一个信号量和槽
    • 代码方式
      • 信号量和槽的宏
      • 信号量和槽都用函数地址
      • lamda表达式
      • 函数指针
    • 槽和信号量函数
      • 信号量
  • 小结

概述

这个内容是QT独有的,写的挺有意义的。之前写过一篇QT slots的函数,思来想去,觉得不是那么有趣。就决定要重新写一篇文章来聊下。

先说下槽和信号量。

用系统生成

如下图所示:
选中一个qpushbutton,然后右键转到槽,
在这里插入图片描述

选中clicked函数,如下图:
在这里插入图片描述
自己生成了一个函数在cpp文件中。

在这里插入图片描述

新增一个信号量和槽

如下图所示:
在这里插入图片描述

在这个地方可以新增一个信号量和槽,然后选中发送者,接收者,信号,槽就可以了。

代码方式

信号量和槽的宏

在这里插入图片描述

信号量和槽都用函数地址

connect(ui->pushButton_3, &QPushButton::clicked, this, &MainWindow::on_pushButton_clicked0);

lamda表达式

 connect(ui->pushButton_3, &QPushButton::clicked, this, [=](){printf("lamda 0\n");});

再看一个,如下:

connect(ui->pushButton_4, &QPushButton::clicked, this, [=](){emit customSlot();});
connect(this, &MainWindow::sig_push_btn4, this, &MainWindow::customSlot);

这个是自定义了槽和信号量。

函数指针

void (MainWindow::*CustomSlot7)() = &MainWindow::customSlot1;
connect(ui->pushButton_5, &QPushButton::clicked, this, CustomSlot7);

这个是函数指针的调用。

槽和信号量函数

信号量

在这里插入图片描述
信号量只用声明就可以了。

在这里插入图片描述
在这里插入图片描述
槽函数声明,实现都要有。

小结

这篇主要写了qt槽函数的几种调用方式,涉及到发送者,接收者,槽,信号量。这种方式有点像设计模式的观察者模式,感兴趣可以参考之前的文章观察者设计模式。至于qt的调用,再加上c++自有的可调用对象(可以参考C++可调用对象),就有多种使用方式了。感兴趣一起学习学习,可以一起。OK,翻篇。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python-22-零基础自学python-数据分析基础 打开文件 读取文件信息

学习内容:《python编程:从入门到实践》第二版 知识点: 读取文件 、逐行读取文件信息等 练习内容: 练习10-1:Python学习笔记 在文本编辑器中新建一个文件,写几句话来总结一下你至此学到的Python知识,其中…

代码随想录:贪心2-4

455.分发饼干 题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j&#xff…

考CISP,不要踩坑的几点建议

当你立志要在信息安全领域闯出一片天,可能多少都会听行内人说,搞本CISP。但这个认证究竟该怎么拿?需要培训吗?培训又是怎么一回事?价格如何?还有,什么时候开始准备最好?这些问题可能…

C++ Lambda表达式第一篇, 闭合(Closuretype)

C Lambda表达式第一篇, 闭合Closuretype ClosureType::operator()(params)auto 模板参数类型显式模板参数类型其他 ClosureType::operator ret(*)(params)() lambda 表达式是唯一的未命名,非联合,非聚合类类型(称为闭包类型&#…

【实习问题记录】Nodeclub本地部署

问题描述 在按照官方网站给出的教程一步一步操作以后发现出现以下报错: 问题分析 显示连接不上mongodb,分析报错可能是因为版本不匹配导致的,查看安装的mongodb版本发现是7.0.4,与目标版本不匹配,同时查看mongodb官…

我们所熟知的meme梗图也可以用AI生成了,老外都玩坏了。

meme梗图不知道大家看到过嘛?相信你们看见下面的图你就会大叫“卧槽”,原来是这种图,我以前经常狂刷不止,太有趣了。 其实meme是一个网络流行语,可译为模因。在大众非学术范围内也可翻译为我们所熟知的“梗”。其中“表…

SDK环境的安装(测试使用)

1、安装 将文件解压至目录,我的目录为:D:\Program Files\Android 解压后如下: 下载链接如下: sdk下载 提取码见文章最后: 2、配置环境 1、在环境变量中,选择系统变量,点击新建。 变量名:ANDROID_HOME 变量值:“你自己的android-sdk安装路径” (例如我的:D:\Pro…

CF1955C Inhabitant of the Deep Sea 题解

题目 模拟 首先想到模拟。 但是看到数据范围&#xff0c;模拟不了。 #include<bits/stdc.h> #include<cstring> #include<queue> #include<set> #include<stack> #include<vector> #include<map> #define int long long #define …

如何在 Linux 中高亮显示日志关键字

在 Linux 系统中&#xff0c;实时查看日志文件通常使用 tailf 命令&#xff0c;但 tailf 本身并不支持高亮显示关键字功能。通过结合 grep、sed 等工具&#xff0c;我们可以实现日志关键字高亮。本文将介绍几种高效的方法来实现这一目标。 方法一&#xff1a;使用 grep --color…

人机交互中有许多不满足紧致性条件的地方

紧致性条件通常用于描述拓扑空间的性质。一个拓扑空间被称为紧致的&#xff0c;如果它的任意开覆盖都有有限子覆盖。换句话说&#xff0c;对于任何开覆盖&#xff0c;都可以从中选取有限个开集&#xff0c;它们的并仍然覆盖整个空间。 满足紧致性条件的方法通常包括以下几种&am…

7月8日 四道经典单链表oj题

大家好呀&#xff0c;本博客目的在于记录暑假学习打卡&#xff0c;后续会整理成一个专栏&#xff0c;主要打算在暑假学习完数据结构&#xff0c;因此会发一些相关的数据结构实现的博客和一些刷的题&#xff0c;个人学习使用&#xff0c;也希望大家多多支持&#xff0c;有不足之…

CSS--表格自适应宽度并设置最小宽度

原文网址&#xff1a;CSS--表格自适应宽度并设置最小宽度_IT利刃出鞘的博客、-CSDN博客 简介 本文介绍怎样让HTML的表格自适应宽度。 Java技术星球&#xff1a;way2j.com 问题描述 默认样式下&#xff0c;表格会出现某一列很窄的情况&#xff1a; 代码&#xff1a; <h…

Redission 解锁异常:attempt to unlock lock, not locked by current thread by node id

标题&#xff1a;解锁异常&#xff1a;Redission中的"attempt to unlock lock, not locked by current thread by node id"问题分析与解决方案 在分布式系统中&#xff0c;锁是常用的同步机制&#xff0c;用于保护共享资源&#xff0c;避免并发冲突。Redission是一个…

java-多线程 2

### 7. 线程池 线程池是管理和复用线程的机制&#xff0c;可以避免频繁创建和销毁线程的开销。Java 提供了 Executor 框架来管理线程池。 #### 7.1 使用 Executors 工厂类 Executors 工厂类提供了一些静态方法&#xff0c;用于创建常见类型的线程池。 java import java.uti…

[240708] 中国 AI 企业在世界人工智能大会上展现韧性与创新

目录 中国 AI 企业在世界人工智能大会上展现韧性与创新 中国 AI 企业在世界人工智能大会上展现韧性与创新 中国科技公司在本周上海举行的世界人工智能大会上展现出强大的韧性和创新能力。超过150 种 AI 相关产品和解决方案在大会上展出&#xff0c;包括商汤科技、华为、科大讯…

电机工厂MES系统-提升生产效率与质量的关键

本文将详细介绍万界星空科技电机行业MES系统的特随着电机行业的快速发展&#xff0c;生产管理的复杂性和精细度日益提高。为了应对这一挑战&#xff0c;万界星空科技MES&#xff08;制造执行系统&#xff09;解决方案&#xff0c;为电机行业带来了前所未有的生产管理变革。点、…

Elasticsearch 分析器(Analyzer)的作用和配置

在Elasticsearch中&#xff0c;分析器&#xff08;Analyzer&#xff09;是文本处理的核心组件&#xff0c;它负责将输入的文本转换为可用于搜索和索引的词项&#xff08;tokens&#xff09;。这一过程涉及多个步骤&#xff0c;包括字符过滤、分词和标记过滤&#xff0c;共同决定…

js替换对象内部的对象名称或属性名称-(第二篇)递归

1.代码示例&#xff1a; function replaceKey(obj, oldKey, newKey) {// 如果不是对象或者oldKey不存在&#xff0c;直接返回原对象if (typeof obj ! object || !obj || !(oldKey in obj)) return obj;// 如果是数组&#xff0c;遍历数组每个元素if (Array.isArray(obj)) {obj…

laravel设计模式详解

目录 创造模式 一. 工厂方法模式 1. Eloquent ORM 模型工厂 2. 表单请求工厂 3. 服务容器中的工厂方法 二. 抽象工厂模式 1. 配置文件 2. 服务提供者 3. 门面&#xff08;Facades&#xff09; 4. 多环境配置 5. 依赖注入容器 三.原型模式 1. 配置对象的复制 2. 请…