《Qt快速入门》-- 信号与槽机制

2023-11-17

每一个图形开发语言、工具都有自己的一套的ui交互机制,Qt也不例外,Qt有自己独特的信号与槽机制用于ui与功能算法的交互。

① Qt的信号与槽机制包含以下三点:

     1.确定是哪个控件发出了信号(Who

     2.确定发出了什么信号(What

     3.确定这个信号应该调用什么功能函数(这个函数在Qt中叫做“槽函数”,实际上和类中普通成员函数是一样的,唯一的不同就是它和控件绑定了

 

② 槽函数的三种:

    1.通过函数:connect(对象1,对象1的函数,对象2,对象2的函数)来实现

       其中,第一个参数:对象1是信号的发出者(一般是一个控件的实例对象),第二个参数:对象1的函数(一般是控件所能发出的信号,如CLICK()........),第三个参数:对象2是信号的接受者(一般是一个界面的实例对象),第四个参数:对象2的函数(一般是类中事先定义好的功能函数,此时这个函数即为槽函数)。

   2. 通过右击控件,选择”转化槽“   

                                  

    然后选择相应的信号函数

                                   

然后会自动跳到一个界面,此时一个槽函数的声明和实现都已经帮你生成了,其中函数名包含控件id名称(btn_cancel)和相应的信号名称(clicked)。

                                   

      相信有人会问,在第一个方法中有四个参数, 到这才只有三个(控件,信号,槽函数)呀?额。。少了的第三个参数其实默认为控件所在的这个窗口(它也是一个实例对象呀)。

    3.(不常用)通过在ui界面中设置:

     如图所示,在QT Designer窗口中的中间下面有个窗口,选中Singals&Slots Editor标签 

       点击”+“号,就可以像类似于connect函数一样添加槽函数啦~~

       不过这个方法有一个局限性,就是只能添加系统中的槽函数,不能添加自定义的槽函数,这个。。。。就很尴尬了。。所以一般使用第一种和第二种方法。。

 

 总结,一般添加槽函数是采用第一种和第二种方法,这两种方法各有利弊:

① 第一种方法比较繁琐,不过胜在直观清晰(代码可读性很高),所有connect函数都写在ui函数中,都集中在一块,哪个控件,发出什么信号,哪个窗口接受,做出什么功能。一目了然!(一般connect函数都写在ui-setUi(this);下面)

② 第二种方法,很方便 (我比较喜欢),但是要看哪个控件发出什么信号,用什么功能函数做出反应,都得一个一个去找函数。。其实还好啦。。可以去头文件去找函数声明呀,然后ctrl+F,在代码中查找呗。。嘻嘻嘻

 

看的视频教程中,视频中老师一直说Qt的信号与槽机制是他见过的UI交互设计中最简单方便。。。我接触的UI交互设计比较少。。以前也简单接触过AS,用java写过安卓小应用,印象中AS的交互设计也挺方便的。。。不过Qt也很优秀的呀!!!嘿嘿嘿

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

《Qt快速入门》-- 信号与槽机制 的相关文章

随机推荐

  • Opencv C++ 基本数据结构 Mat

    Opencv C 基本数据结构 Mat Mat 构造单通道Mat对象 获取单通道Mat的基本信息 以三行两列的矩阵为例 1 获取行数和列数 2 使用成员函数size 获取矩阵的尺寸 3 使用成员函数channels 获取矩阵的通道数 4 使
  • Unity中的GameObjectRecorder类录制动画

    Unity中的GameObjectRecorder类录制动画 记录 GameObjectRecorder 示例代码 解析 记录 首先是 参考及示例视频 Unity制作战神等级的表情动画 游戏 CG Vtuber适用 相关代码在8分16秒之后
  • 进程间通信(IPC)

    概述 进程间通信就是在不同进程之间传播或交换信息 那么不同进程之间存在着什么双方都可以访问的介质呢 进程的用户空间是互相独立的 一般而言是不能互相访问的 唯一的例外是共享内存区 另外 系统空间是 公共场所 各进程均可以访问 所以内核也可以提
  • 用javaScript编写lrc歌词解析器

    如果想要了解如何编写的请继续往下看 如果只需要代码 请点击这里Github lrc歌词文件介绍 来先看一下以下歌词 Heart To Heart lrc ti Heart To Heart ar James Blunt al Heart T
  • Python Socket连接过程详析

    一 套接字 套接字是为特定网络协议 例如TCP IP ICMP IP UDP IP等 套件对上的网络应用程序提供者提供当前可移植标准的对象 它们允许程序接受并进行连接 如发送和接受数据 为了建立通信通道 网络通信的每个端点拥有一个套接字对象
  • TinyDDS编程实践

    背景 传统计算机网络的运行依赖于集中式运营商及服务提供商 Server 它在拓扑结构上的典型特点就是存在一个或数个 中心节点 整个网络的数据传输和处理都集中在少数节点上 中心节点 是维持整个系统运行的关键 也是控制整个系统运行的中枢 这种拓
  • springboot集成alibaba-druid数据连接池及配置

    一 pom文件中引入依赖
  • 【TensorFlow】tf.nn.conv2d卷积实现+filter计算原理

    本来想转载底层实现过程的 结果发现原文中的实验2错误 在这里说明下fliter工作过程 输入层 就是输入的图像 有可能是三通道的有可能是单通道的 filter 深度与输入层的深度 通道数 相同 输出层 输出层的就是filter遍历输入层后的
  • mysql 创建索引 强制_mysql 强制走索引

    查询是数据库技术中最常用的操作 查询操作的过程比较简单 首先从客户端发出查询的SQL语句 数据库服务端在接收到由客户端发来的SQL语句后 执行这条SQL语句 然后将查询到的结果返回给客户端 虽然过程很简单 但不同的查询方式和数据库设置 对查
  • 汇编程序设计与计算机体系结构软件工程师教程笔记:函数、字符串、浮点运算

    汇编程序设计与计算机体系结构 软件工程师教程 这本书是由Brain R Hall和Kevin J Slonka著 由爱飞翔译 中文版是2019年出版的 个人感觉这本书真不错 书中介绍了三种汇编器GAS NASM MASM异同 全部示例代码都
  • 得物 H5容器 野指针疑难问题排查 & 解决

    1背景 得物 iOS 4 9 x 版本 上线后 一些带有横向滚动内容的h5页面 有一个webkit 相关crash增加较快 通过Crash堆栈判断是UIScrollview执行滚动动画过程中内存野指针导致的崩溃 2前期排查 通过页面浏览日志
  • Maven 导出依赖Jar,生成source.jar,javadoc.jar

    下载最新版的Maven http maven apache org download cgi 解压到本地文件夹 新建环境变量 MAVEN HOME maven解压目录 在path加入 MAVEN HOME bin 需要确保已经有Java环境
  • matlab修改坐标轴刻度间隔大小

    修改matlab画图的坐标轴的间隔大小 使用下边的 set gca XTick 2 2 46 改变x轴坐标间隔显示 这里间隔为2
  • kettle mysql jdbc_kettle作业连接mysql资源库8小时后报错

    kettle作业在运行一段时间后会报错 原因是mysql会默认每8小时回收一次无用连接 错误日志如下 Communications link failure with MySQL he last packet successfully re
  • ubuntu安装android sdk

    1 下载Android SDK http tools android studio org index php sdk 我下载的是 android sdk r24 4 1 linux tgz 解压Android SDK 将android s
  • 忘掉 MindNode, 这才是Mac颜值最高的思维导图工具

    思维导图是一款帮助我们将大脑中浮现的各种思维串联起来的工具 非常适合用于逻辑性写作或者团队的头脑风暴 应用的范围比较广 关于写如何用思维导图工具的文章多如牛毛 不管是对职场人士 学生 还是全职妈妈的作用 各种文章都有涉猎 既然思维导图工具如
  • 安装CentOS7.6并创建用户及优化系统

    文章目录 安装系统 创建用户及基础优化系统 安装系统 制作CentOS7 6的镜像光盘或U盘 略过 将光盘或U盘放入到服务器中 修改BIOS启动选项 将其修改为光盘或U盘启动 启动服务器 如果是物理机的话 启动服务器后 进入远控卡 设置远控
  • JAVA socket编程实例

    转载文章 原作者无从考证 感谢作者的无私奉献 事实上网络编程简单的理解就是两台计算机相互通讯数据而已 对于程序员而言 去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了 Java SDK提供一些相对简单的Api来完成这些工作 Soc
  • 【实战练习】汽油辛烷值优化建模(一)(题目+数据集)

    先放上题目和数据集 链接 https pan baidu com s 15 iDC9Wdx49rUe Qt2b Uw 提取码 6666 一 题目 1 背景 汽油是小型车辆的主要燃料 汽油燃烧产生的尾气排放对大气环境有重要影响 为此 世界各国
  • 《Qt快速入门》-- 信号与槽机制

    每一个图形开发语言 工具都有自己的一套的ui交互机制 Qt也不例外 Qt有自己独特的信号与槽机制用于ui与功能算法的交互 Qt的信号与槽机制包含以下三点 1 确定是哪个控件发出了信号 Who 2 确定发出了什么信号 What 3 确定这个信