QT自定义信号和槽

信号和槽

    • 介绍
    • 实现
      • 创建文件
      • 对teacher的h和cpp文件进行处理
      • 对student的h和cpp文件进行处理
      • 对widget的h和cpp文件进行处理

介绍

Qt中的信号和槽是一种强大的机制,用于处理对象之间的通信。它们是Qt框架中实现事件驱动编程的核心部分。
信号(Signal):信号是当某个特定事件发生时由一个对象发出的。信号本质上就是一个函数调用,但不同于普通的函数调用,它拥有一些特殊属性。比如信号可以异步发送,也就是说发送者和接收者可以在不同的线程中运行。此外,信号可以带有参数,这些参数可以在信号发送时被传递给接收者。

槽(Slot):槽是接收并响应信号的函数。槽函数可以是任何普通的成员函数,只要它被声明为信号的接收者。当一个信号被发射时,与之相关联的槽函数将被自动调用。

在Qt中,要建立信号和槽的连接,需要使用connect函数。例如:

connect(sender, SIGNAL(signalName()), receiver, SLOT(slotName()));

这里,sender是信号的发送者,signalName()是信号的名称,receiver是接收者对象,slotName()是槽函数的名称。

实现

举个例子,铃声响起,老师说放学,然后学生就回家。这里老师说放学为信号,学生为槽接受然后做出回家的动作。

创建文件

先在头文件里面添加老师和学生两个类
在这里插入图片描述
选择第一个同时创建.h和.cpp文件
在这里插入图片描述
在这里插入图片描述
结果如下图所示
在这里插入图片描述

对teacher的h和cpp文件进行处理

对信号的添加要写在signals下面,只需要声明,不需要实现,返回void,可以带参数和重载。所以不用在cpp文件内进行处理
在这里插入图片描述

对student的h和cpp文件进行处理

对槽函数的添加要写在public下面或者全局函数,需要声明和实现,返回void,可以带参数和重载。
在这里插入图片描述
在这里插入图片描述

对widget的h和cpp文件进行处理

把teache和student的头文件引入进来
在这里插入图片描述

在这里插入图片描述
至此,就完成了一个简单的例子。运行,然后在应用程序输出可以看到文字输出
在这里插入图片描述

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

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

相关文章

SpringCloud微服务架构,适合接私(附源码)

一个由商业级项目升级优化而来的微服务架构,采用SpringBoot 2.7 、SpringCloud 等核心技术构建,提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。 架构图 项目介绍 用户权益 仅允许免费用于学习、毕设、公司项目、私活等。…

帮你了解广告行业是如何发展的(移动端为主),通俗易懂!!

一、背景 移动互联网发展,各移动设备普及 一方面,受欢迎的高uv、pv APP不断增多。 另一方面,广告主在传统媒体上拓展缓慢,需要产品推广途径以及发掘潜在用户。出现问题 众多APP无法变现 广告主需要更好的推广渠道 广告主直接和AP…

正则表达式RE

目录 正则表达式RE 正则表达式基本元字符 正则表达式拓展元字符 正则表达式RE 正则表达式基本元字符 正则表达式拓展元字符 用来处理文本 正则表达式(Regular Expression, RE)是一种字符模式, 用于在查找过程中匹配指定的字符. 在大多数程序里, 正则表达式都被置于两个正斜…

[每周一更]-(第81期):PS抠图流程(扭扭曲曲的身份证修正)

应朋友之急,整理下思路,分享一下~~ 分两步走:先用磁性套索工具圈出要处理的图;然后使用透视剪裁工具,将扭曲的图片拉平即可;(macbook pro) 做事有规则,才能更高效;用什么工具,先列举…

从Eumetsat批量下载哨兵数据等各种数据

从Eumetsat批量下载哨兵数据等各种数据 那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程,他们只是觉得这是一件有趣的事情! 批量下载Sentinel数据脚本2023 从Eumetsat批量下载哨兵数据等各种数据🌿前言🍀脚本构成…

QQ邮件发送(PHP的Laravel)

1. 开启 QQ 邮箱的 SMTP 支持 2.里面会一个类似于密码之类(复制一下) 3.然后再 .env文件里面配置一下 MAIL_DRIVERsmtp —— 使用支持 ESMTP 的 SMTP 服务器发送邮件; MAIL_HOSTsmtp.qq.com —— QQ 邮箱的 SMTP 服务器地址,必…

SpringSecurity深度学习

SpringSecurity简介 spring Security是什么? Spring Security 是一个强大且高度可定制的身份验证和访问控制框架,用于保护基于Spring的应用程序。它是Spring项目的一部分,旨在为企业级系统提供全面的安全性解决方案。 一个简单的授权和校验…

Kendo UI for Angular 学习笔记

文本框 textbox &#xff1a;<kendo-textbox></kendo-textbox> [maxlength]&#xff1a;最大输入长度[showSuccessIcon] / [showErrorIcon]:显示内置验证图标kendoTextBoxPrefixTemplate&#xff1a;前 后缀 icon[clearButton]"true" &#xff1a; Text…

可转债系列文章1——可转债基础知识

1.什么是可转债&#xff1f; 可转债&#xff0c;全称为“可转换公司债券”&#xff0c;是指持有者可以在特定时期内&#xff0c;按照一定比例或价格&#xff0c;将其转换成特定数量的另一种证券的债券。这种债券可以在特定条件下转换成股票&#xff0c;因此它同时具有债权和股…

selenium实现UI自动化

1.selenium简介 selenium是支持web浏览器自动化的一系列工具和库的综合项目。具有支持linux、windows等多个平台&#xff0c;支持Firefox、chrome等多种主流浏览器&#xff1b;支持Java、Python等多种语言。 主要包括的三大工具有&#xff1a; WebDriver&#xff08;rc 1.0)、…

从0开始python学习-42.requsts统一请求封装

统一请求封装的目的&#xff1a; 1.去除重复的冗余的代码 2. 跨py文件实现通过一个sess来自动关联有cookie关联的接口。 3. 设置统一的公共参数&#xff0c;统一的文件处理&#xff0c;统一的异常处理&#xff0c;统一的日志监控&#xff0c;统一的用例校验等 封装前原本代…

Kubernetes复习总结(一):Kubernetes内置资源、Device Plugin机制

1、Kubernetes内置资源 1&#xff09;、Pod Pod是Kubernetes进行管理的最小单元&#xff0c;程序要运行必须部署在容器中&#xff0c;而容器必须存在于Pod中 Pod可以认为是容器的封装&#xff0c;一个Pod中可以存在一个或者多个容器 1&#xff09;Pod进程组 在Kubernetes里面…

【动态规划】【字符串】C++算法:140单词拆分

作者推荐 【动态规划】【字符串】扰乱字符串 本文涉及的基础知识点 动态规划 字符串 LeetCode140:单词拆分 II 给定一个字符串 s 和一个字符串字典 wordDict &#xff0c;在字符串 s 中增加空格来构建一个句子&#xff0c;使得句子中所有的单词都在词典中。以任意顺序 返回…

在电商狂欢中,什么平台更加对商家有利?

我是电商珠珠 近年来&#xff0c;不管是直播电商也好&#xff0c;电商平台也好&#xff0c;都一直朝着向上走的趋势。 我做电商也已经有5年时间了&#xff0c;期间做过天猫&#xff0c;快手、抖店&#xff0c;团队从原来的几个人&#xff0c;扩大到了70。 在22年10月&#x…

Python 面向对象之多态和鸭子类型

Python 面向对象之多态和鸭子类型 【一】多态 【1】概念 多态是面向对象的三大特征之一多态&#xff1a;允许不同的对象对同一操作做出不同的反应多态可以提高代码的灵活性&#xff0c;可扩展性&#xff0c;简化代码逻辑 【2】代码解释 在植物大战僵尸中&#xff0c;有寒冰…

【Java】Java多线程:数据一致性问题及解决方案

引言 在面向对象的编程语言Java中,多线程编程是一个强大的工具,可以使我们能够构建高效率和高并发的应用程序。然而,多线程环境下的数据共享也带来了数据一致性的挑战。在本文中,我们将探讨Java多线程中的数据一致性问题,并提出几种解决方案。 数据一致性问题 当多个线程同…

UE4.27_PIE/SIE

UE4.27_PIE/SIE 1. 疑问&#xff1a; 不明白什么是PIE/SIE? 不知道快捷键&#xff1f; 2. PIE/SIE: play in editor/simulate in editor 3. 快捷键&#xff1a; F8: 运行时possess&eject切换 4. 运行操作效果&#xff1a; PIE&SIE

3d全景怎么拍摄?应用领域有哪些?

3d全景技术是综合了VR技术和全景拍摄的一种新型应用技术&#xff0c;通过3D全景技术可以为用户带来720度无死角的观看方式和真实的观看体验&#xff0c;那么3d全景是怎么拍摄制作的呢&#xff1f;应用领域又有哪些呢&#xff1f; 3d全景拍摄制作流程其实不难&#xff0c;常见的…

vue的增量式学习-篇章4

vue的增量式学习-篇章4&#xff0c; 又名&#xff1a;写毕设到企业级前端&#xff08;第7天&#xff09; vue的增量式学习-篇章4 工具链路由状态管理Reactive State&#xff08;响应式状态&#xff09;使用Vuex测试服务端渲染 (SSR)最佳实践工业界实际用的产品及其分析 前端长…

【Docker】配置阿里云镜像加速器

默认情况下&#xff0c;将来从docker hub &#xff08;https://hub.docker.com )上下载镜像太慢&#xff0c;所以一般配置镜像加速器。 没有账号的注册一个账号并登录 登录之后点击控制台 查看 cat /etc/docker/daemon.json