1.Qt中信号和槽

    1.1 需求:点击按钮关闭窗口

    1.2 利用connect进行链接

    1.3 参数1 信号发送者(指针) 参数2 发送的信号(信号地址) 参数3 信号的接受者(指针) 参数4 处理槽函数(槽函数地址)

    1.4 connect(btn,&QPushButton::clicked,this,&Widget::close);

    1.5 优点:松散与耦合;将不相关的两个内容链接到一起。

  2. 自定义信号和槽

    2.1 需求:

      /*

      * Teacher 类  Student 类

       * ClassIsOver 下课,老师发送自定义信号, 饿了

      * 学生  响应饿了的信号, 并且 请老师吃饭

      */

    2.2 自定义信号写法

      //自定义信号 写到singles 下

       // 自定义信号写法:

      //1、返回void

      //2、信号只需要声明,不需要实现

      //3、自定义信号可以发生重载(即可以有参数);

    2.3 自定义槽函数

       //自定义槽函数 写到public slots下,或者全局函数,或者public下,或者是lambda表达式

      //1、返回void

       //2、需要声明,也需要实现

       //3、也可以发生重载

    2.4 触发自定义信号 emit 自定义信号

    2.5链接这里就不再陈述了;

    2.6 当自定义信号和槽函数发生了重载之后,需要利用函数指针,明确指出函数地址

    2.7拓展

      2.7.1 信号可以连接信号

      2.7.2 一个信号可以连接多个槽函数

      2.7.3 多个信号可以连接一个槽函数

      2.7.4 信号和槽的参数类型,必须一一对应

      2.7.5 信号的参数个数 可以多于槽函数的个数,但是类型也要一一对应

      2.7.6 信号和槽是可以断开连接的disconnect

    2.8 Qt4版本的信号和槽的写法

      2.8.1 优点:参数直观

      2.8.2 缺点:参数类型不做检测

      2.8.3 connect (zt,SIGNAL(hungry(QString)),st,SLOT(treat(QString)));

    3. lambda 表达式

      3.1 常使用: [=](){}

      3.2 加上mutable修饰符后,可以修改按值传递进来的拷贝(注意是能修改拷贝,而不是值本身)

      3.3 返回值 n = []()->int {return 10000}{};

      3.4 CONFIG += c++11 QT4版本前的低版本使用lambda表达式必须要加入的一行配置信息

QT_5_ Qt中信号和槽 + 自定义信号和槽 + lambda 表达式的更多相关文章

  1. Qt学习笔记-了解信号与槽-自定义信号-自定义槽

    信号与槽是连接不同控件直接的渠道. 这里以Horizontal Slider和Dial两个控件举例. 目的是在改变滑条的数值时,Dial也随之响应. 首先添加两个控件. 然后按快捷键F4进入控件编辑模 ...

  2. PyQt(Python+Qt)学习随笔:自定义信号在emit发射信号时报错:AttributeError: object has no attribute

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 如果使用自定义信号,一定要记得信号是类变量,必须在类中定义,不能在实例 ...

  3. Qt中如果通过QStyle自定义能够跨平台的界面控件

    我们经常会碰到需要定制界面控件的要求.如果只是在一个平台上,比如说你的控件只需要在Windows上显示,那很好办,Hard code 你的look and feel就可以了.但是如果界面需要在不同平台 ...

  4. Linux信号使用及自定义信号

    linux自定义信号:https://www.cnblogs.com/bigben0123/p/3186661.html linux信号.值及解释:https://blog.csdn.net/luot ...

  5. linq中order by 和group by (含lambda表达式实现)以及综合案例

    一.Linq应用场景 linq的语法通过System.Linq下面的Enumerable类提供支持,也就是说,只要是实现了IEnumerable<T>的对象都可以使用Linq的语法来查询. ...

  6. C#中分别对委托、匿名方法、Lambda表达式、Lambda表达式树以及反射执行同一方法的过程进行比较。

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. C++中对C的扩展学习新增语法——lambda 表达式(匿名函数)

    1.匿名函数基础语法.调用.保存 1.auto lambda类型 2.函数指针来保存注意点:[]只能为空,不能写东西 3.std::function来保存 2.匿名函数捕捉外部变量(值方式.引用方式) ...

  8. 自己用纯C++实现简单的QT中信号与槽机制

    前天在我很久以前的一篇博文 (http://blog.csdn.net/liukang325/article/details/45742675) 中有人回复说看到我的博文很激动,希望我详细介绍一下信号 ...

  9. QT中的小细节

    一 .  QT4和QT5的区别(信号和槽):1.  QT4: connect(button,SIGNAL(pressed()),this,SLOT(close())); /** * 优点 :写法简单 ...

随机推荐

  1. 任务31:课时介绍 & 任务32:Cookie-based认证介绍 &任务33:34课 :AccountController复制过来没有移除[Authorize]标签

    任务31:课时介绍 cookie-based网站这边的认证 jwt基于移动端和前后端分离的项目,jwt有一些独特的优势 jwt在asp.net core中的实现机制,了解实现机制并进行扩展.比如非标准 ...

  2. cclfow_小流程设计

    官网演示地址:http://demo.ccflow.org/ 流程的主要需求: 新建流程 登陆系统后台进行设置流程:鼠标右键流程树 选择新建子级类别 输入子级类别名称:流程演示,点击确定即可 点击流程 ...

  3. KDotAlert

    一个iPhone X的适配让楼主受尽了自定义的苦,使用系统API多好,所以在楼主不懈的努力下,终于和组长达成一致:逐步用系统控件替换代码里面的自定义控件,第一个挨刀的就是 BlockAlertsAnd ...

  4. 利用ffmpeg0.6.1把.h264纯码流打包成.mp4 .avi等格式 (转载)

    转自:http://cache2.weidaohang.org/h/index.php?q=aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1cWluZ183MzkvYXJ0aWNsZS ...

  5. Swift里计数相关的小细节

    Swift里对于字符串这些引入了index型,相对其他语言而言字符操作更安全了,但是问题就是一不注意搞错范围就会有各种离奇的bug. 在讲主题前,先说个小细节. Swift里非常严密的定义了一大堆字符 ...

  6. hdoj3790 【最短路】

    这一题啊,其实还是很简单的~(A掉了就很简单啊~) 思路: 松弛,然后在里面维护一个小最短路~: A掉这一题,感觉松弛的理解又上了一个台阶,以及spfa的原理,最短路用到的原理就是松弛,先把图构造到最 ...

  7. 6.while循环正向反向打印一句话

    message = "伤情最是晚凉天,憔悴厮人不堪言."' count=0 num=-1 while count<len(message): print(message[co ...

  8. PHP 遍历一个文件夹下所有文件和子文件夹的方法

    话不多说,直接上代码 <?php function my_dir($dir) { $files = []; if(@$handle = opendir($dir)) { while(($file ...

  9. list的一些功能

    x = [1,5,2,3,4] 1.列表反转序: 函数法: x.reverse()该方法没有返回值但会对列表进行反向排序. 注意 不能y=x.reverse(),会得到None 如果要的话要y=rev ...

  10. Asp.net 字符(一)

    1.字母大小写处理 private string GetChangedStr(string oldStr, strType type) { string newStr = ""; ...