当前位置: 首页 > news >正文

2、QT的信号与槽

一、什么是信号与槽

一个对象发送一个信号出去,另外一个对象接收到该信号后,会触发相应的槽函数

二、信号与槽的语法

connect(信号的发送者,SIGNAL(信号名称),信号的接收者,SLOT(槽函数));

1、写法:

QT 4 的写法

connect(sender,SIGNAL(valueChanged(QString,QString)),receiver,SLOT(updateValue(QString)));

QT 5的写法

connect(sender,&Sender::valueChanged,receiver,&Receiver::updateValue);

2、定义

控件生成信号定义:

①、在需要接收信号的类中 声明槽函数

//声明槽函数
public slots:void set_label();

②、在xxx.cpp 中实现槽函数

void MainWindow::set_label()
{ui->label->setText("设置标签成功!!!666");}

③、进行信号与槽的关联

connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(set_label()));

用户自定义信号:
①、在信号的发送者类中声明信号

signals:void mysig();

②、关联信号与槽

connect(this,SIGNAL(mysig()),this,SLOT(set_label()));

③、发送信号

emit mysig();

3、信号与槽的参数传递

①、定义一个带参的信号

signals://定义一个带参的信号void mysig(int a);

②、定义一个带参数的槽

public slots:void get_sig(int a);

③、进行信号与槽的关联

connect(this,SIGNAL(mysig(QString)),this,SLOT(get_sig(QString )));

④、发送带参数的信号

emit mysig("HELLO QT");

参数传递注意事项:

  • 1、信号与槽的参数类型必须要匹配
  • 2、发送者的参数的个数 必须要大于或等于 接收者参数的个数

请添加图片描述

在这里插入图片描述

信号与槽的取消关联

语法:

disconnect(信号的发送者,SIGNAL(发送的信号),信号的接收者,SLOT(接收的信号));
-----------------------------------------------------------------------
例子:
disconnect(this,SIGNAL(mysig()),this,SLOT(get_sig()));
http://www.lryc.cn/news/151676.html

相关文章:

  • Java代码审计15之Apache log4j2漏洞
  • c语言每日一练(13)
  • H5 + C3基础(六)(2D转换transform 位移 旋转 缩放)
  • 2023最新 Electron.js 桌面应用开发教程(基础篇)更新中
  • 【ES】笔记-Set集合实践
  • 缺陷或负样本难以收集怎么办?使用生成式模型自动生成训练样本,image-to-image Stable diffusion
  • ZMTP协议
  • ubuntu18安装中文环境
  • 怎么提取视频中的音乐保存到本地?其实方法很简单
  • 线性代数的学习和整理18:矩阵的秩的各种定理, 秩和维度(未完成)
  • UVa11374 Airport Express(Dijkstra)
  • hadoop的hdfs中避免因节点掉线产生网络风暴
  • 2023年高教社杯 国赛数学建模思路 - 案例:最短时间生产计划安排
  • Spring MVC介绍
  • 5年测试在职经验之谈:2年功能测试、3年自动化测试,从入门到不可自拔...
  • 【Python数据分析】数据分析之numpy基础
  • Swift 如何从图片数据(Data)检测原图片类型?
  • 【ES6】 JavaScript 中的Object.assign
  • Redis缓存和持久化
  • OpenCV(六):多通道分离与合并
  • Sql单行数据查询为多行
  • 网络协议分析-http/https/tcp/udp
  • 基于aarch64分析kernel源码 四:printk 内核打印
  • 机器人中的数值优化(六)—— 线搜索最速下降法
  • postman调试注意事项
  • 【C#】泛型
  • CLIP:连接文本-图像
  • MFC网络编程简单例程
  • 云原生简介 (Cloud Native)
  • 【SpringBoot系列】 测试框架之@SpringBootTest的使用