当前位置: 首页 > 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)信号,控件状态必须改变。(非选中-->选中 / 选中-->非选中)

相关文章:

  • 轻型DXF文件格式
  • 【WebGIS实例】(17)下载瓦片底图并实现离线加载——以天地图为例
  • 【WPF】02 按钮控件圆角配置及状态切换
  • c#的委托、事件
  • Html css样式总结
  • 【SemeDrive】【X9H】SPI 通讯 —— 应用层到驱动层的调用
  • ByteCinema(1):用户的登录注册
  • Leetcode—1014. 最佳观光组合【中等】
  • Win11家庭版找不到gpedit.msc文件怎么办
  • 植物大战僵尸【源代码分享+核心思路讲解】
  • 深度学习02-pytorch-06-张量的形状操作
  • C++离线查询
  • 变压器设备漏油数据集 voc txt
  • QT 中中文乱码的问题处理
  • java重点学习-设计模式
  • 【Elasticsearch】-图片向量化存储
  • [数据集][目标检测]智慧养殖场肉鸡目标检测数据集VOC+YOLO格式3548张1类别
  • 828华为云征文|部署在线文件管理器 Spacedrive
  • 解决SVN蓝色问号的问题
  • 在HTML中添加图片
  • 中国巴西民间推动建立经第三方验证的“森林友好型”牛肉供应链
  • 浙江首个核酸药谷落子杭州,欢迎订阅《浪尖周报》第23期
  • 马克龙称法英正与乌克兰商议“在乌部署欧洲军队”
  • 为何发胖?如何减肥?一个医学体重管理中心的探索启示
  • 李在明正式登记参选下届韩国总统
  • 习近平抵达莫斯科伏努科沃专机机场发表书面讲话(全文)