Qt学习笔记 信号和槽
槽和普通c++成员函数一样只可以为虚函数,也可以被重用,可以是公有的也可以是私有的,也可以被其它的c++函数调用;
参数也是任意的
唯一不同的是本槽和信号是可以连在一起的,和c#的事件差不多。相连后每当发射这个信号后就会自动调用这个槽
connection(sender,SIGNAL(signal),receiver,SLOT(slot));
sender就发送信号的Qobject指针
receiver是槽的Qobject指针
signal和slot是只有形参的函数名。SIGNAL和SLOT宏会把它们的参数转换为相应的字符串
1.一个信号可以连接多个槽
在发射信号的时候顺序不确定
.h
private slots:void Open1();void Open2();
.app
myQt::myQt(QWidget *parent): QMainWindow(parent) {ui.setupUi(this);QObject::connect(ui.btn_Open,SIGNAL(clicked()),this,SLOT(Open1()));QObject::connect(ui.btn_Open,SIGNAL(clicked()),this,SLOT(Open2())); }void myQt::Open1() {QMessageBox msg;msg.setText("Open1!");msg.exec(); } void myQt::Open2() {QMessageBox msg;msg.setText("Open2!");msg.exec(); }
2.多个信号可以连接同一个槽
QObject::connect(ui.btn_Open,SIGNAL(clicked()),this,SLOT(Open1()));QObject::connect(ui.btn_ClickBool,SIGNAL(clicked()),this,SLOT(Open1()));
3.一个信号可以与另外一个信号相连
QObject::connect(ui.btn_Open,SIGNAL(clicked()),ui.btn_ClickBool,SLOT(click()));
4连接可以被删除
删除所有的连接
QObject::disconnect(ui.btn_Open,0,0,0);//或者ui.btn_Open->disconnect();
删除指定的连接
QObject::disconnect(ui.btn_Open,SIGNAL(clicked()),0,0);//或者ui.btn_Open->disconnect(SIGNAL(clicked()));
删除两个关联对象的连接
QObject::disconnect(ui.btn_Open,0,ui.btn_ClickBool,0);//或者ui.btn_Open->disconnect(ui.btn_ClickBool);
要把信号成功的连接到槽(或者是连接到另外一个信号),它们的参数必须具有相同的顺序和相同的类型。
这里有个例外,如果信号的参数比它所连接的槽的参数多,那么多余的参数将会被忽略
转载于:https://www.cnblogs.com/li-peng/p/3650682.html
Qt学习笔记 信号和槽相关推荐
- QT学习之②信号与槽,以及链接实现方法
QT学习之②信号与槽 ~QQ:3020889729 ~小蔡 信号与槽的意义 信号与槽的实质(文字:举例) 信号与槽的工作(图解) 信号与槽的创建 信号的声明 槽函数的声明 槽函数的实现 (无重载)信号 ...
- Qt工作笔记-信号与槽参数匹配问题
今天,我把Qt3代码转化为Qt5,控件啥的都要换,李主任说了下为什么以前的信号和槽函数参数不匹配!!这句话让我对Qt中的信号与槽进一步有了了解. 下面的这个演示源码是基于这个博客的 https://b ...
- Qt学习笔记-----信号槽
Qt提供signals and slots mechanism(信号槽机制)来保证两个对象之前的关联(connection). 所谓信号槽,简单理解就是两部分,一个是某对象发出的信号,一个是某对象接收 ...
- Qt学习笔记5-信号槽机制
以<C++ GUI Programming with Qt 4, Second Edition>为参考 前几节提到过信号槽,此次来深入了解一下信号槽机制. 信号槽机制是Qt的一个基础,它使 ...
- QT学习之信号和槽,图片的添加
信号和槽 给控件改名字 为了分析代码方便,我们要给控件改名字,要通俗易懂. 例如:双击登陆后鼠标会选中右边的logoBt,即可修改名称. 什么是信号和槽 信号:信号就是指控件发出的特定信号. 比如按钮 ...
- Qt学习之信号与槽函数断开:disconnect
当信号与槽没有必要继续保持关联时,可以使用disconnect函数来断开连接. bool QObject::disconnect ( const QObject * sender, const cha ...
- QT学习笔记(4) 信号和槽
一.代码编写 在上一次的学习中,我们把所有的控件布局和控制信息都放在主函数中,这样极其不方便开发和维护. 然后我们又发现在打开一个窗体时,其实最开始是先执行的构造函数.所以我们就想到可以把当前对象和子 ...
- QT学习笔记(七):定时器事件的3种常用使用方式
QT学习笔记(七):定时器事件的2种常用使用方式 Qt中定时器的使用有2种方法:一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数,一种就是使用QTimer类. 其 ...
- QT学习笔记(五):Qt5的8种标准对话框示例
QT学习笔记(五):Qt5的8种标准对话框示例 前言 实例展示 1.颜色对话框 2.文件对话框 3.字体对话框 4.输入对话框 5.消息对框 6.进度对话框 7.错误信息对话框 8.向导对话框. 前言 ...
最新文章
- DM8168 OpenCV尝试与评估(编译ARM版OpenCV)
- Android踩坑日记:监听软键盘多次调用和刷新系统相册和获取所有相片
- mysql数据库char类型长度_mysql数据库设计字符类型及长度
- 武侠乂怎么修改服务器,武侠乂怎么操作 按键功能详细介绍
- 手把手教你数据不足时如何做深度学习NLP
- java修改请求url_spring cloud zuul修改请求url的方法
- Web后端学习笔记 Flask(9)cookie and session
- JQ实现 todolist案例(记事本)
- 基于单片机的打地鼠游戏仿真设计(#0040)
- springboot基于web的摩托车销售系统的设计与实现毕业设计源码031706
- 熊猫教你路由器和三层交换机的区别
- java 注解处理器的作用_Java注解处理器
- 网络变压器通频带、网络变压器插入损耗及矩形脉冲失真的关系
- POI中设置Excel单元格格式样式(居中,字体,边框,背景色、列宽、合并单元格等)
- Python编写键盘记录器
- 品优购商城——手机详情页(作业)
- 如何将中文地址翻译成英文
- 苹果自研处理器搭载全新MacBook 价格更亲民
- 系統封裝(6)--EZBOOT設置
- 2022年浙江省人民医院--互联网医院出线小报
热门文章
- 复杂多个合约部署验证方法
- 知识分享:如何用插件实现操作校验
- Elasticsearch 2.3.0 重建索引
- Bootstrap-学习系列
- android开发EditText输入时弹出数字输入键盘
- 7 大工具,驯服大数据
- H3C交换机配置命令
- 模型预测控制的缺点_【电子技术】【2018.01】模型预测控制FPGA实现的协同设计...
- dante pam mysql_FreeBSD下安装dante(sockd)并使用pam-pwdfile进行认证
- Postman接口测试工具学习笔记(二)Postman进阶实践:获取天气预报实例