QT之信号与槽

  简介:信号与槽可是Qt最大成功点,也是整个Qt基本核心机制,如果不会信号与槽,将无法领略Qt之美;

1.信号与槽函数原型:

QObject::connect(const QObject *sender, const char *signal,
const QObject *receiver, const char *method,
   Qt::ConnectionType type = Qt::AutoConnection)

  以上可以看出,一共只有5个参数,来我们一个一个说说;

  参数1:信号发送者

  参数2:信号类型

  参数3:信号接收者

  参数4:信号接收者接收该信号好需要执行的函数,叫槽函数

  参数5:槽函数的执行线程类型,一般默认,当多线程的时候你再回来看它

-----------------这就是信号槽参数说明,简单吧。

2. 当使用了信号与槽之后,它是怎么运行的呢?

  这样,举个形象的例子吧:

    已经中午12点了,小明的爸爸还在家里不远处干活。妈妈已经烧好了饭菜,看到小明爸爸还没回来就对小明说:小明,去外面喊爸爸回来吃饭!于是小明就跑到屋外,大声喊道:爸爸回家吃饭啦。 远处的爸爸听到儿子喊声回应道:好,我这就回去。于是小明爸爸放下了手中的活,走回家里吃饭去了。

  参数1:小明

  参数2:喊爸爸回家吃饭

  参数3:爸爸

  参数4:爸爸走回家吃饭去

参数5:一般默认

  从形象过程看:小明 --> 喊 -->爸爸 -->走回家吃饭

从线程角度看:爸爸干活是主线程,主线程一直运行着,也就是爸爸一直在干活。当小明喊爸爸回家吃饭,爸爸就放下手中的活儿,也就主线程等待了,等待爸爸吃完饭回来接着干,等爸爸回来主线程又继续运行了。

 

  这就是信号槽一个形象模拟过程。

Qt之先用了再说系列-信号与槽的更多相关文章

  1. 在Qt Creator 和在 vs2012 里添加信号和槽

    原文地址:http://www.cnblogs.com/li-peng/p/3644812.html 作者:李鹏 出处:http://www.cnblogs.com/li-peng/ 本文版权归作者和 ...

  2. 【QT】无需写connect代码关联信号和槽函数

    对于一些简单的事件判别,如点击按钮. 无需写代码关联信号和槽函数. connect(ui->Btnshowhello,SIGNAL(clicked(bool)),this,SLOT(Btnsho ...

  3. 信号和槽:Qt中最差劲的创造

    不要被这个标题唬住了,实际上我是非常认可Qt的.在C++实现的开源产品中没有哪一个的API风格比得上Qt,拥有高度一致性,符合常识,符合直觉,几乎不用学就可以直接上手.或许是由于我们摆脱不了马太效应的 ...

  4. Qt Quick 事件处理之信号与槽

    前面两篇文章<QML 语言基础>和<Qt Quick 简单教程>中我们介绍了 QML 语言的基本的语法和 Qt Quick 的常见元素,亲们,通过这两篇文章,您应该已经能够完毕 ...

  5. Qt Quick 事件处理之信号与槽(foruok的博客)

    前面两篇文章<QML 语言基础>和<Qt Quick 简单教程>中我们介绍了 QML 语言的基本语法和 Qt Quick 的常见元素,亲们,通过这两篇文章,您应该已经可以完成简 ...

  6. Qt之先用了再说系列-多线程方式2

    继Qt之先用了再说系列-多线程方式2 本次说说在Qt里多线程使用第2种方式,也是qt官方比较推荐用的方式,相对与直接继承QThread 重写run方法中灵活了一些,如果第一次使用可能会转不湾来,没有直 ...

  7. Qt信号与槽自动关联机制

    参考链接1:http://blog.csdn.net/skyhawk452/article/details/6121407 参考链接2:http://blog.csdn.net/memory_exce ...

  8. QT点击"X"按钮,调用closeEvent()函数来实现调用特定事件(附:粗略介绍QT的信号与槽的使用方法)

    背景: QT在用户关闭窗口(直接点击"X"键)时,程序一般都需要做一些善后的事情,就我现在的程序来说,既关闭USB.如何实现? 正文: 首先,在对应窗体的".h" ...

  9. QT 信号与槽connect

    QT 信号与槽connect QT 信号与槽connect connect函数调用几个限制 connect函数代码 QT中信号与槽的连接使用的connect函数是一个静态函数,在类QObject中定义 ...

随机推荐

  1. GO反射类实例

    变量的内在机制 类型信息:是静态的元信息,是预先定义好的 值信息:是程序运行过程中动态改变的 反射的使用 获取类型信息:reflect.TypeOf,是静态的 获取值信息:reflect.ValueO ...

  2. OC与Swift混编,三种场景的实现方式

    多语言并存时期,混编成为一种必须的方式 ,在多场影中实现OC和Swift语言的并存原来是如此简单 第一种场景,App中实现混编 创建桥接文件*.h 新建一个桥接文件,New File 选择 Heade ...

  3. 如何设计一个高性能 Elasticsearch mapping

    目录 前言 mapping mapping 能做什么 Dynamic mapping dynamic=true dynamic=runtime dynamic=false dynamic=strict ...

  4. linux操作系统故障处理-ext4文件系统超级块损坏修复

    linux操作系统故障处理-ext4文件系统超级块损坏修复   背景 前天外面出差大数据测试环境平台有7台服务器挂了,同事重启好了五台服务器,但是还有两台服务器启动不起来,第二天回来后我和同事再次去机 ...

  5. Node.js入门(含NVM、NPM、NVM的安装)-(转载)

    Node.js的介绍 引擎 引擎的特性: JS的内核即引擎.因为引擎有以下特性: (1)转化的作用: 汽油柴油等等->动能 模板+数据--->页面 js引擎:js 代码--->机器码 ...

  6. Centos7挂载windows共享目录

    将windows的共享目录挂载到Centos7 查看是否有mount.cifs命令,如果没有,在线安装 [root@dropbox-bak01 ~]# yum install cifs-utils - ...

  7. opencv——PCA(主要成分分析)数学原理推导

    引言: 最近一直在学习主成分分析(PCA),所以想把最近学的一点知识整理一下,如果有不对的还请大家帮忙指正,共同学习. 首先我们知道当数据维度太大时,我们通常需要进行降维处理,降维处理的方式有很多种, ...

  8. linux上传启动项目命令

    使用Xshell 或其他远程链接登录工具登录服务器后 1.切换用户到root: sudo -i 账户密码 注意:可直接将jar包放入root用户目录下,避免有可能因为服务器文件夹权限设置导致在指定文件 ...

  9. Ubuntu1804下k8s-CoreDNS占CPU高问题排查

    1.背景: 最近在ubuntu804上适配k8s的时候,部署到业务pod的时候,出现了服务器卡死,top查看发现负载很高,进行CPU排序发现如下信息,可知是CoreDNS服务导致. 2. 分析排查: ...

  10. MongoDB学习笔记:Python 操作MongoDB

    MongoDB学习笔记:Python 操作MongoDB   Pymongo 安装 安装pymongopip install pymongoPyMongo是驱动程序,使python程序能够使用Mong ...