信号函数:

connect(btn,&QPushButton::clicked,this,&QWidget::close);
//参数1 信号发送者;
//参数2 信号;---&发送者的类名::信号名字
//参数3 信号接受者;参数4 槽函数)
//参数4 槽函数 ----&接受的类名::槽函数

自定义类的信号和槽函数:

例子一:不带参数

例子2---带参数

视频教程:https://www.bilibili.com/video/av66373980/

signals:
void xiake(QString str);//自定义一个信号--带传送参数
public slots:
void huodong(QString str); //声明一个槽函数--带接受参数
void Student::huodong(QString str){  //槽函数实现体
qDebug()<<"学生开始活动了:"<<str;
}
Teacher* th=new Teacher(this);
Student* sd=new Student(this);
void(Teacher::*p)(QString)=&Teacher::xiake; //定义函数指针
void(Student::*p1)(QString)=&Student::huodong;
connect(th,p,sd,p1);//连接信号与槽函数
emit th->xiake("做操");//发出信号

如果不是重载函数,也可以:connect(th,&Teacher::xiake,sd,&Student::huodong);

信号和槽函数出现同名重载时,用函数指针来区分

信号连接信号:

QPushButton* btn=new QPushButton("按钮",this);
btn->move(,); Teacher* th=new Teacher(this);
Student* sd=new Student(this);
void(Teacher::*p)(void)=&Teacher::xiake;
void(Student::*p1)(void)=&Student::huodong; connect(btn,&QPushButton::clicked,th,p);//信号连接信号
//点击按钮就发出th的xiake信号
connect(th,p,sd,p1);
//th信号连接sd的槽函数 //disconnect(th,p,sd,p1);//断开信号与槽函数的连接

注意:一个信号可以连接多个槽函数

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

槽函数的参数可以少于信号参数,但是类型必须一一对应

在VS中自定义槽函数:https://blog.csdn.net/qq_36880027/article/details/96627918

qt5-信号和槽的更多相关文章

  1. Qt5信号与槽C++11风格连接简介

    最近在论坛上看到了这个方面的问题,详见这里. 随后浅浅地学习了一下子,看到了Qt官方论坛上给出的说明,觉得C++11的functional连接方法还是比Qt4既有的宏连接方法有很大不同. 官方论坛的文 ...

  2. Qt5信号和槽机制

    信号槽是 Qt 框架引以为豪的机制之一.熟练使用和理解信号槽,能够设计出解耦的非常漂亮的程序,有利于增强我们的技术设计能力. 所谓信号槽,实际就是观察者模式.当某个事件发生之后,比如,按钮检测到自己被 ...

  3. qt5中信号和槽的新语法

    qt5中的连接 有下列几种方式可以连接到信号上 旧语法 qt5将继续支持旧的语法去连接,在QObject对象上定义信号和槽函数,及任何继承QObjec的对象(包含QWidget). connect(s ...

  4. Qt5 UI信号、槽自动连接的控件重名

    Qt5 UI信号.槽自动连接的控件重名 来源 http://blog.csdn.net/goldenhawking/article/details/51865909 对Qt5稍有熟悉的童鞋都知道信号. ...

  5. Qt 学习之路 2(16):深入 Qt5 信号槽新语法

    Qt 学习之路 2(16):深入 Qt5 信号槽新语法  豆子  2012年9月19日  Qt 学习之路 2  53条评论 在前面的章节(信号槽和自定义信号槽)中,我们详细介绍了有关 Qt 5 的信号 ...

  6. Qt5 UI信号、槽自动连接的控件重名大坑(UI生成的槽函数存在一个隐患,即控件重名。对很复杂的控件,不要在 designer 里做提升,而是等到程序启动后,再动态创建,可以避免很多问题)

    对Qt5稍有熟悉的童鞋都知道信号.槽的自动连接机制.该机制使得qt designer 设计的UI中包含的控件,可以不通过显式connect,直接和cpp中的相应槽相关联.该机制的详细文章见 http: ...

  7. Qt5教程: (4) 带参数信号与槽

    在subwidget.h中声明一个signal. 和之前的信号函数重名但是有参数: void backSignal(QString); 之后在subwidget.cpp的槽函数sendSignal() ...

  8. Qt5教程: (2) 信号与槽

    1. 新建工程 新建一个"Qt Widgets Application"工程 2. 添加按钮 一个Qt工程会有很多个控件, 如果把逻辑代码都写在main函数里, main函数会非常 ...

  9. Qt5 connect 重载信号和槽

    转载文章超哥的经验之谈---Qt5 connect使用之"重载信号和槽" 在Qt4中,关联信号与槽是要使用到SIGNAL()和SLOT()这两个宏. QLabel *label = ...

  10. QT5中的信号与槽与C++ 11的function的配合

    最近将公司的界面开发库从WX转换到了QT,有了信号和槽,原本我们在使用WX的时候,为了使用信号,我们是使用BOOST的signal2库,到了QT有了信号槽,这个就没什么必要了 但是前段时间使用QT发现 ...

随机推荐

  1. Bzoj2873 光之大陆

    https://blog.csdn.net/qq_39791208/article/details/79079117 有空来研究

  2. 手写k-means算法

    作为聚类的代表算法,k-means本属于NP难问题,通过迭代优化的方式,可以求解出近似解. 伪代码如下: 1,算法部分 距离采用欧氏距离.参数默认值随意选的. import numpy as np d ...

  3. 解决incorrect 'only available in ES6' warning (W119) with options `moz: true, esversion: 6` 报错问题

    很多同学在新建vue项目时,会遇到 incorrect 'only available in ES6' warning (W119) with options `moz: true, esversio ...

  4. 题目---汉诺塔及AI代码及八皇后

    2019春第十一周作业 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering ...

  5. [xpath] 定位中starts-with、contains和text()的用法

    starts-with 顾名思义,匹配一个属性开始位置的关键字 contains 匹配一个属性值中包含的字符串 text() 匹配的是显示文本信息,此处也可以用来做定位用 eg //input[sta ...

  6. mysql一个SQL案例

    需求 : 测试数据 ),start1 int,end1 int); ,); ,); ,); ,); ,); ,); 解决: 解决2: 解决代码 核心思想,把符合逻辑条件的行,构造相同分组 select ...

  7. [转帖]忘记了MariaDB root密码的解决办法

    忘记了MariaDB root密码的解决办法 https://www.cnblogs.com/liaojie970/p/6126322.html 貌似跟 mysql 是一样的. 1.停掉mariaDB ...

  8. GitHub从小白到熟悉<五>

    GitHub    主页 

  9. python的Email提醒

    目的意义 使用Email自动发送,有利于实时获取爬取信息,更方便的掌握要闻. 导入相关库 MINEText库定义了发送信息, Header定义了发送的主题 formate定义了收件人和发件人的格式信息 ...

  10. 基本MVC2模式创建新闻网站

    一.介绍 这实现比较简单,就是对两张表的操作,登录利用session验证用户信息. 2.效果