qt5-信号和槽

信号函数:
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-信号和槽的更多相关文章
- Qt5信号与槽C++11风格连接简介
最近在论坛上看到了这个方面的问题,详见这里. 随后浅浅地学习了一下子,看到了Qt官方论坛上给出的说明,觉得C++11的functional连接方法还是比Qt4既有的宏连接方法有很大不同. 官方论坛的文 ...
- Qt5信号和槽机制
信号槽是 Qt 框架引以为豪的机制之一.熟练使用和理解信号槽,能够设计出解耦的非常漂亮的程序,有利于增强我们的技术设计能力. 所谓信号槽,实际就是观察者模式.当某个事件发生之后,比如,按钮检测到自己被 ...
- qt5中信号和槽的新语法
qt5中的连接 有下列几种方式可以连接到信号上 旧语法 qt5将继续支持旧的语法去连接,在QObject对象上定义信号和槽函数,及任何继承QObjec的对象(包含QWidget). connect(s ...
- Qt5 UI信号、槽自动连接的控件重名
Qt5 UI信号.槽自动连接的控件重名 来源 http://blog.csdn.net/goldenhawking/article/details/51865909 对Qt5稍有熟悉的童鞋都知道信号. ...
- Qt 学习之路 2(16):深入 Qt5 信号槽新语法
Qt 学习之路 2(16):深入 Qt5 信号槽新语法 豆子 2012年9月19日 Qt 学习之路 2 53条评论 在前面的章节(信号槽和自定义信号槽)中,我们详细介绍了有关 Qt 5 的信号 ...
- Qt5 UI信号、槽自动连接的控件重名大坑(UI生成的槽函数存在一个隐患,即控件重名。对很复杂的控件,不要在 designer 里做提升,而是等到程序启动后,再动态创建,可以避免很多问题)
对Qt5稍有熟悉的童鞋都知道信号.槽的自动连接机制.该机制使得qt designer 设计的UI中包含的控件,可以不通过显式connect,直接和cpp中的相应槽相关联.该机制的详细文章见 http: ...
- Qt5教程: (4) 带参数信号与槽
在subwidget.h中声明一个signal. 和之前的信号函数重名但是有参数: void backSignal(QString); 之后在subwidget.cpp的槽函数sendSignal() ...
- Qt5教程: (2) 信号与槽
1. 新建工程 新建一个"Qt Widgets Application"工程 2. 添加按钮 一个Qt工程会有很多个控件, 如果把逻辑代码都写在main函数里, main函数会非常 ...
- Qt5 connect 重载信号和槽
转载文章超哥的经验之谈---Qt5 connect使用之"重载信号和槽" 在Qt4中,关联信号与槽是要使用到SIGNAL()和SLOT()这两个宏. QLabel *label = ...
- QT5中的信号与槽与C++ 11的function的配合
最近将公司的界面开发库从WX转换到了QT,有了信号和槽,原本我们在使用WX的时候,为了使用信号,我们是使用BOOST的signal2库,到了QT有了信号槽,这个就没什么必要了 但是前段时间使用QT发现 ...
随机推荐
- 【AMAD】django-rules -- 强大的Django鉴权库,不需要数据库
动机 简介 个人评分 动机 Django默认的权限原子级别是model级.但是一些时候我们像针对model每条数据库记录都进行权限空,也就是对象级权限控制. 简介 django-rules是一个Dja ...
- C++学习笔记-多态的实现原理
深入了解多态的实现原理,有助于提高对于多态的认识 多态基础 多态的实现效果 多态:同样的调用语句有多种不同的表现形态 多态实现的三个条件 有继承.有virtual重写.有父类指针(引用)指向子类对象 ...
- sqlalchemy基本的增删改查
#encoding: utf-8 from sqlalchemy import create_engine,Column,Integer,String from sqlalchemy.ext.decl ...
- .NET Core和.NET Standard 区别与联系
每一种托管实现(如Xamarin..NET Core或.NET Framework)都必须遵循.NET Standard实现BCL..NET STANDARD LIBRARY是.net 标准库,.NE ...
- JAVA实验三及总结
JAVA第五周作业 Java实验报告三 第一题 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) (1).统计该字符 ...
- spring简单crud配置文件说明
字体设置:代码 14px 文字 幼圆 15px 1.在pom.xml下导入依赖包 (1)Spring四个核心依赖包 <dependency> <groupId>org.spr ...
- Python学习【day05】- Python文件处理
一.打开文件 对文件的操作主要为三步:1.打开文件,得到文件句柄.2.通过句柄对文件进行操作.3.关闭文件 # 默认打开模式为r,encoding默认为系统文件编码 f=open('F:/Go.txt ...
- linux增加swap大小
参考自:https://blog.csdn.net/ssrmygod/article/details/70157716 我在centos6.5上照着操作成功了首先查一下目前swap的大小: [root ...
- leecode刷题(27)-- 合并k个排序链表
leecode刷题(27)-- 合并k个排序链表 合并k个排序链表 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1-> ...
- shiro配置学习
一.shiro的配置 1.shiro的web过滤 实例化ShiroFilterFactoryBean 设置securityManager.loginUrl.unauthorizedUrl.sucess ...