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

Qt clicked()、clicked(bool)、toggled(bool)信号的区别和联系

clicked() 信号

所属控件:clicked()信号是QAbstractButton类(及其子类,如QPushButtonQRadioButtonQCheckBox等)的一个信号。clicked信号可以说是许多控件(特别是按钮类控件,如QPushButton)用于通知外部当它们被点击时的一个常用信号。

触发时机当按钮被点击并释放时触发。

连接信号槽方式:

  • connect连接:当用户点击了这样的控件时,clicked信号会被发射(emit),然后任何连接到这个信号的槽(slot)函数都会被调用,允许你响应这个点击事件。
//例如:QPushButton控件pushButton触发clicked事件后,槽函数onButtonClicked会响应这个点击事件。
connect(pushButton, &QPushButton::clicked, this, &MyWidget::onButtonClicked);
  • Qt设计师“跳转槽”机制连接:在对应控件“右键”->“跳转槽”->“clicked()信号”:生成该控件的clicked()信号的槽函数。 
//槽函数名称组成:on_控件名称_信号名称。
void MainWindow::on_pushButton_clicked()
{//动作
}

:无参数。

用途用于响应按钮的点击事件,执行与点击相关的操作,而不考虑按钮的当前状态(如是否选中)。此信号一般用于QPushButton,而不适用于QRadioButton(单选框)QCheckBox(复选框),后者一般通过是否被选中状态执行对应的动作,无参数的信号体现不出状态改变。

 

clicked(bool)信号

所属控件:clicked()信号是QAbstractButton类(及其子类,如QPushButtonQRadioButtonQCheckBox等)的一个信号。

触发时机:当按钮被点击并释放时触发。

连接信号槽方式:

  • connect连接:当用户点击了这样的控件时,clicked(bool)信号会被发射(emit),然后任何连接到这个信号的槽(slot)函数都会被调用,允许你响应这个点击事件。
connect(radioButton, &QRadioButton::clicked(bool), this, &MyWidget::onRadioButtonClicked(bool));
  • Qt设计师“跳转槽”机制连接:在对应控件“右键”->“跳转槽”->“clicked(bool)信号”:生成该控件的clicked(bool)信号的槽函数。 
//槽函数名称组成:on_控件名称_信号名称。
void MainWindow::on_radioButton_clicked(bool checked)
{if(checked){//选中状态的动作}else{//非选中状态的动作}
}

bool类型:是否被选中

用途:用于响应按钮的点击事件,执行与点击相关的操作考虑按钮的当前状态(如是否选中)。此信号一般用QRadioButton(单选框)QCheckBox(复选框),通过是否被选中状态执行对应的动作。

toggled(bool) 信号

toggled(bool)信号与clicked(bool)信号既有相同之处也有不同之处。

clicked(bool)信号和toggled(bool)信号比较

相同:
  • 都是用于响应按钮的点击事件,执行与点击相关的操作考虑按钮的当前状态(如是否选中)。此信号一般用QRadioButton(单选框)QCheckBox(复选框),通过是否被选中状态执行对应的动作。
  • 参数相同,bool类型:是否被选中
  • 所属控件相同,触发时机相同,信号槽的连接均有connect和“跳转槽”两种方式
区别:信号触发的方式不同

toggled(bool)

1)通过用户点击,进行交互时触发信号;

2)通过代码改变控件状态触发信号。如: 

ui->checkBox->setChecked(false); --> ui->checkBox->setChecked(true);
ui->checkBox->setChecked(true); --> ui->checkBox->setChecked(false);

clicked(bool): 只能通过用户,进行交互时触发信号。

注意:

若想通过代码触发toggled(bool)信号,控件状态必须改变。(非选中-->选中 / 选中-->非选中)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于C语言的基数排序算法
  • 如何安装1Panel面板并架设一个静态网站
  • 【ChatGPT】提示词助力高效文献处理、公文撰写、会议纪要与视频总结
  • 深度学习——基础知识
  • Android carrier_list.textpb 和apns-conf.xml 配置文件参考
  • 数据结构--第六章图
  • Redis 缓存雪崩、缓存穿透、缓存击穿详解
  • 2024年中国研究生数学建模竞赛C题——解题思路
  • 【已解决】Linux ubuntu 20.04 docker 不需要sudo权限
  • 机器视觉OpenCV
  • 【系统架构设计师】专题:特定领域软件架构 DSSA(详细知识点及历年真题)
  • ER 图 Entity-Relationship (ER) diagram 101 电子商城 数据库设计
  • Cisco 基础网络汇总
  • 【机器学习】任务五:葡萄酒和鸢尾花数据集分类任务
  • Docker UI强大之处?
  • 2017届校招提前批面试回顾
  • echarts的各种常用效果展示
  • javascript面向对象之创建对象
  • Median of Two Sorted Arrays
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 那些年我们用过的显示性能指标
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 译自由幺半群
  • 正则学习笔记
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (2.2w字)前端单元测试之Jest详解篇
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (推荐)叮当——中文语音对话机器人
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (五)IO流之ByteArrayInput/OutputStream
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .Family_物联网
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET 给NuGet包添加Readme
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NetCore发布到IIS
  • .NET程序员迈向卓越的必由之路
  • .net和php怎么连接,php和apache之间如何连接
  • ?.的用法
  • @RestControllerAdvice异常统一处理类失效原因
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [1525]字符统计2 (哈希)SDUT
  • [AHK] WinHttpRequest.5.1报错 0x80092004 找不到对象或属性
  • [Android]如何调试Native memory crash issue
  • [bzoj1901]: Zju2112 Dynamic Rankings
  • [c#基础]值类型和引用类型的Equals,==的区别
  • [C++]类和对象(中)