Qt5.9Creator中自定义信号SIGNAL和在另一个类中用该信号触发槽函数用法

2023-10-30

本文章主要总结在Qt5.9Creator中自定义一个信号,然后在另一个类里面用该信号触发槽函数的实例。具体的实例是在类ClassA中自定义一个信号Signal1,然后在MAinWindows类中用该信号Signal1来触发槽函数SlotFunction()的调用。


注意:

1.使用信号与槽机制,一定要是QObject类和QObject派生类才有效,否则该机制是无效的。

2.使用信号与槽机制时,需要在类的头文件的第一行加入Q_OBJECT宏,同时该类最好是QObject的派生类。

3.如果正确使用信号与槽机制,同时没有语法错误;但是编译时仍然报错,这时可以尝试把编译出的build*文件整个删除,然后再次编译。(有时是编译过的build文件对信号与槽机制有影响)


一、具体实例用法

1.1新建一个widget工程,工程名称为SignalTest,基类选择QMainWindows。然后在ui界面上拖入一个pushButton按钮和添加按钮槽函数,如下图所示:



1.2新添加一个C++类,类名为ClassA,基类选择为QObject,如下图所示:



1.3在classa.h头文件中,添加一个自定义信号Signal1,同时添加一个Test()成员函数,如下代码所示:



1.4在源文件classa.cpp中,添加如下代码:



1.5接下来,要在主窗口MAinWindows类中,用一个槽函数绑定该信号,同时调用这个信号。在MAinWindows.h头文件中,实例一个类ClassA的对象,代码如下:





1.6在MAinWindows.h头文件中,添加一个槽函数,该槽函数的作用是与自定义的信号Signal1绑定,代码如下:



1.7在MAinWindows.cpp的构造函数中,初始化指针和绑定自定义信号,代码如下:



1.8在MAinWindows.cpp的按钮槽函数中,添加如下代码:



1.9在自定义槽函数中,添加如下代码:



二、构建程序和运行结果,如下图所示:





由上图结果可知,点击按钮后,触发按钮槽函数;然后按钮槽函数调用ClassA的Test()函数;Test()函数每被调用一次,就触发一次Signal1信号;由于Signal1信号与槽函数SlotFunction()绑定,故触发Signal1信号后,立刻触发SlotFunction()槽函数;而SlotFunction()槽函数的功能是输出一条语句。所以上图结果表明,在一个新建的类(ClassA类)里面自定义一个信号(Signal1),然后在另一个类(MAinWindows类)里面调用该信号,用该信号来触发槽函数的调用,是正确可行的。


三、源代码资源下载:

http://download.csdn.net/download/naibozhuan3744/10270045



参考内容:

http://www.cnblogs.com/ike_li/p/4990626.html(重点参考)

http://blog.csdn.net/u012964993/article/details/30454923

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

Qt5.9Creator中自定义信号SIGNAL和在另一个类中用该信号触发槽函数用法 的相关文章

  • VNC Connect使用参数填充VNC配置文件

    VNC Server xff0c VNC Viewer和支持程序由参数控制 xff0c 为大多数用户提供了合适的默认值 您可以通过为参数指定新值来配置程序 xff1a 1 在程序启动之前 2 在启动时在命令行上 3 程序运行时 xff0c
  • 解决curl: (7) Failed to connect to raw.githubusercontent.com port 443

    解决办法 xff1a 一 首先查询域名 raw githubusercontent com对应的ip地址 去这网址查询 xff1a https tools ipip net domain php 二 修改hosts文件 linux系统一般都
  • **curl: (7) Failed to connect to 192.168.31.126 port 26657: 拒绝连接**

    修改 tendermint 配置文件 xff0c 将laddr中的 tcp 127 0 0 1 26657 修改为 0 0 0 0
  • CentOS6.5上安装qt-creator-opensource-linux-x86-3.1.2.run

    1 qt creator opensource linux x86 3 1 2 run的下载 wget http mirrors hustunique com qt official releases qtcreator 3 1 3 1 2
  • 【Cocos creator】Cocos creator介绍和入门

    目录 一 工作流程二 安装和启动三 入门示例四 项目结构五 编辑器界面 Cocos Creator 是一个完整的游戏开发解决方案 xff0c 包含了 cocos2d x 引擎的 JavaScript 实现 xff0c 以及快速开发游戏所需求
  • 【Qt】Qt Creator设置折叠全部代码的快捷键

    Qt 折叠全部代码的快捷键 Qt Creator中 xff0c 默认是没有的 xff0c 需要自己设置 1 打开Qt Creator的偏好设置 2 在环境 gt 按键 gt 快捷键 gt 文本编辑器 gt 输入 xff1a toggle f
  • java.net.SocketTimeoutException: connect timed out问题

    redis clients jedis exceptions JedisConnectionException java net SocketTimeoutException connect timed out at redis clien
  • fork()父子进程变量之间的关系与信号的响应

    1 变量关系 根据 unix 高级环境编程 中的一句话 子进程和父进程继续执行fork调用之后的指令 子进程是父进程的副本 例如 子进程获取父进程数据空间 堆和栈的副本 注意 这是子进程所拥有的副本 父子进程并不共享这些存储空间部分 父子进
  • Qt connect 中, SIGNAL,SLOT 与 lambda 对比

    简单的信息就不说了 主要谈谈区别 首先结论是 推荐用 lambda 格式绑定信号槽 个人看法 有其他建议欢迎讨论 具体原因如下 SIGNAL SLOT 是 Qt4 时期的方法 lambda 是 Qt5 引入的 新的总比老的好 SIGNAL
  • QT跨线程连接信号和槽

    对QT的信号和槽理解较为初级 今天通过多次尝试 终于学会了跨线程连接信号和槽 其基本方法如下 1 无参数传递时 1 定义 signal void signal1 2 连接部分写法 connect p class1 类1的指针 SIGNAL
  • Cocos Creator 华容道

    环境 cocos creator 2 0 10 Mac环境 TypeScript 文末附源码链接 本文提供了游戏玩法的逻辑 支持关卡配置 可以自由配置关卡 先看一下效果 首先 我们看一下我们要处理的问题 1 区域划分 2 角色摆放 即 关卡
  • Navicat 链接虚拟机Mysql 报错:2003-Can't connect to Mysql server on 'xxx' (10060 "Unknown error")

    前言 在首次在本机用Navicat链接VMware win10虚拟机中的Mysql数据库报错 如下 解决方法 一 尝试ping虚拟机ip地址 如果出现链接超时或者是过期的情况 请参考另一篇博客 https blog csdn net ido
  • 类EMD的“信号分解方法”及MATLAB实现(第三篇)——CEEMDAN

    来帮忙填坑了 今天接着之前讲过的EEMD和CEEMD 来介绍一下 类EMD 分解方法的第三篇 1 CEEMDAN 自适应噪声完备集合经验模态分解 的概念 CEEMDAN 1 Complete Ensemble Empirical Mode
  • qt connect多次

    1 坑的现象 有时项目中一个信号发出 对应连接的槽函数会执行多次 普通刷新界面都不会有问题 但是特别频繁的就会影响性能 如果是改变数据的 更有甚者会异常崩溃 2 遇坑的原因 qt中同一实例的同一信号和槽 connect多次 当信号发出时 槽
  • 使用SARIMA做季节时间序列预测全流程(附MATLAB代码)

    在之前的专栏中我们用ARIMA的方法做了时间序列的趋势性预测 不过我们经常还会遇到一种情况 即某些时间序列中存在明显的周期性变化 这种周期是由于季节性变化 季度 月度等 引起的 如下图所示 为1949年到1960年每月国际航空公司的乘客人数
  • QT在子线程发送信号给主线程,主线程信号槽函数没有反应的解决办法

    在编写线程时遇到了一个问题 即子线程发送信号给主线程 主线程信号槽函数没有反应 这个问题卡了半天 最终找到解决办法 自己记录一下 问题 在子线程的run函数发送了一个信号 在主函数中定义了一个信号槽函数用来响应这个信号 但是槽函数不执行 修
  • 不使用 Oracle 客户端的 Python Oracle DB Connect

    我正在尝试用 python 构建一个应用程序 它将使用安装在企业服务器中的 Oracle 数据库 并且我正在开发的应用程序可以在任何本地计算机中使用 是否可以在Python中连接到oracle DB 而无需在存储和执行python应用程序的
  • Now.js 中的会话支持

    Now js 引用 只需在 nowjs initialize 中传递一个连接或快速 http 服务器 this user session 就应该可用 So express require express app module exports
  • Connect 会话中间件签名 cookie 如何工作?

    我想了解 connect sid cookie 在 Connect Node js 框架中如何工作 我注意到它们的格式如下 s hash signature 我不明白当哈希足以用于从内存存储或 Redis 存储访问会话数据时如何使用签名 另
  • 如何检查 Android 上是否启用 USB 连接模式?

    我在 Android 市场上有一个应用程序 用户经常将他们的设备连接到计算机以将音乐添加到应用程序文件夹中 我在说明中特别指出 当启用 USB 连接模式时 Android 应用程序无法与 SD 卡通信 显然这还不够愚蠢的证据 有没有办法在j

随机推荐

  • jvm是如何处理异常的

    jvm发现运算是已经违反了数学运算规则 java将这种常见的问题进行描述 并封装成了对象叫做ArithmeticException 当除0运算发生后 jvm将该问题打包成了一个异常对象 并将对象抛给调用者main函数 new Arithme
  • vue 多级菜单栏,鼠标移入显示鼠标移除隐藏

  • 注意力机制——注意力评分函数(代码+详解)

    目录 注意力分数 关于a函数的设计有两种思路 1 加性注意力 Additive Attention 2 缩放点积注意力 Scaled Dot Product Attention 模块导入 遮蔽softmax操作 加性注意力代码 补充知识 1
  • 地理信息安全在线培训考试题库-单选题

    1 根据 测绘成果管理条例 利用涉及国家秘密测绘成果开发生产的产品 未经 A 进行保密技术处理的 其秘密等级不得低于所用测绘成果的秘密等级 A 国务院测绘行政主管部门或者省 自治区 直辖市人民政府测绘行政主管部门 B 省级以上保密管理部门
  • OpenResty&Nginx安装ZhongKui-WAF

    Zhongkui WAF 钟馗是中国传统文化中的一个神话人物 被誉为 捉鬼大师 专门驱逐邪恶之物 Zhongkui WAF的命名灵感来源于这一神话人物 寓意着该软件能够像钟馗一样 有效地保护Web应用免受各种恶意攻击和威胁 Zhongkui
  • ModuleNotFoundError:No module named 'pyecharts' 解决pythone安装pyecharts无法正常运行问题

    一 Pyecharts安装方法 方法一 打开CMD输入命令安装 因镜像在国外 所以安装较慢 pip install pyecharts 方法二 利用国内清华镜像安装 pip install i https pypi tuna tsinghu
  • 使用vite打包可以按需引入的组件库 (rollup)

    package json name private false version 0 1 9 main lib index umd js module lib index es js types lib index d ts author n
  • BasicDao的使用

    本次博客带领大家学习BasicDao的使用 BasicDao的基本说明 DAO data access object数据访问对象 这样的通用类 称为BasicDao 是专门和数据库交互的 即完成对数据库 表 的crud操作 在BasicDa
  • tf2梯度计算为None的情况

    今天搭建用tf2搭建WGAN网络 自己来写梯度函数 在使用tf GradientTape 来求梯度时 发现求出结果为None 一般来说结果为None 表示输入变量之间没有构成可求导的关系 同时也需要理解tf GradientTape 求导的
  • 毕业设计-基于机器视觉的嵌入式烟雾识别系统- OpenCV

    目录 前言 课题背景和意义 实现技术思路 一 相关技术简介 二 图像视频识别算法研究 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越
  • iOS开发,定位当前所在地理位置偏移,坐标转换

    我的blog地址 http blog csdn net h qiao 欢迎访问 在开发中经常会遇到定位当前位置 而且不需要有地图之类的一系列功能 一般都会用CLLocationManger来定位 但是会发现定位出来的经纬度地理反编码之后和自
  • 新浪股票接口获取历史数据

    这两天做了一个调用新浪股票接口获取实时以及历史股票数据的应用 因为新浪没有公开关于其接口的官方文档 所以通过各种百度差了很多关于新浪股票接口的使用 不过大家基本都是转载或者直接复制 对于实时数据的获取讲的很详细 但是缺少获取历史数据的方法
  • Oracle 数据库误truncate table恢复过程

    北京某国企客户 Oracle 11g R2 数据库误truncate table CM CHECK ITEM HIS 表数据丢失 业务查询到该表时报错 此时发现数据库的备份不能用 表数据无法查询 客户Oracle 11g R2 数据库误tr
  • Map对象和普通对象的7个区别

    前言 普通对象和 ES6 的新对象 Map 都可以存储键值对 但是 它们之间有什么区别 今天来聊一聊 1 初始化与使用 普通对象可以直接使用字面量进行初始化 而 Map 需要 Map 构造函数进行初始化 如果想要有初始值 则需要传递一个数组
  • shell之I/O重定向

    管道 管道符 cat和more命令 重定向 文件标识符 I O重定向符号及其用法 exec命令 代码块重定向 命令行处理 命令行处理流程 eval命令 管道 管道是Linux编程中最常用的技术之一 Shell编程中竖杠符号 command1
  • python 时间表_Python计算出给定的时间段的具体日期列表-大全

    由于工作中经常用到关于用户自定义时间 来进行后台数据的查询 特意整理了一下工作中常用的到的关于时间列表的一个函数 可以计算出某一年中的具体哪个周的开始和结束日期 某个周的具体日期列表 2015年38周 自定义时间段的具体日期列表 20150
  • 架构内容框架建立在标准内

    内容元模型 架构内容框架建立在标准内容元模型的基础上 标准内容元模型对架构中存在的所有类型的构建块进行了定义 内容元模型的一个高层概览图如下图所示 这个元模型图示了可以如何去描述这些构建块以及它们之间如何相关联 内容元模型概览 在创建和管理
  • PCB设计-Allegro软件入门系列-扇出

    在cadence布线时 对于BGA封装的器件 管脚通常较密且管脚一般较多 且在布线时往往需要在管脚旁边先打过孔再在内层走线 往往用手动的方法一个一个过孔添加的方法是速度很慢 而且十分容易出错而且容易造成疲惫 所以软件已经现在有一个Fanou
  • ue4删除静态光照数据

    世界设置 lightmass下方光照贴图 勾选force no precomputed lighting后构建 可以清除之前的静态光照贴图
  • Qt5.9Creator中自定义信号SIGNAL和在另一个类中用该信号触发槽函数用法

    本文章主要总结在Qt5 9Creator中自定义一个信号 然后在另一个类里面用该信号触发槽函数的实例 具体的实例是在类ClassA中自定义一个信号Signal1 然后在MAinWindows类中用该信号Signal1来触发槽函数SlotFu