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

20.QT QPushButton 全部信号详解

QPushButton,所有按钮信号都继承自父类QAbstractButton,另外还继承QWidgetQObject的通用信号。

一、按钮核心业务信号(最常用,来自 QAbstractButton)

1.void clicked(bool checked = false)

  • 触发:鼠标在按钮内按下+松开、快捷键触发、代码调用click()/animateClick()
  • 参数:按钮设置setCheckable(true)时,checked代表当前选中状态;普通按钮参数默认无意义
connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::onClick);

2.void pressed()

  • 触发:鼠标左键刚按下按钮瞬间,还没松开就触发
  • 适用场景:长按功能、按住持续执行操作(如拖动、连续加减数值)
connect(ui->pushButton, &QPushButton::pressed, this, &MainWindow::onPressed);

3.void released()

  • 触发:鼠标左键松开按钮时触发(无论按下后鼠标是否移出按钮区域)
  • 适用场景:按住松手后收尾逻辑

4.void toggled(bool checked)

  • 触发:仅可选中按钮(setCheckable(true))切换选中/取消状态时触发
  • clicked区别:clicked每次点击都会发;toggled只有状态真的改变才会发
  • 参数checked:true=选中,false=取消选中
ui->pushButton->setCheckable(true); // 开启可切换 connect(ui->pushButton, &QPushButton::toggled, this, &MainWindow::onToggle);

二、继承自 QWidget 的通用界面信号(按钮也能用)

  1. void customContextMenuRequested(const QPoint &pos)
    右键点击按钮时触发,pos 是鼠标坐标,用于弹出右键菜单。
  2. void windowTitleChanged(const QString &title)
    窗口标题变化(按钮自身无窗口,基本不用)
  3. void windowIconChanged(const QIcon &icon)
  4. 鼠标/焦点类通用信号(所有控件都有):
    • void enterEvent()/void leaveEvent()鼠标移入/移出
    • void focusInEvent()/focusOutEvent()获取/失去焦点

三、继承自 QObject 的生命周期信号

void destroyed(QObject *obj = nullptr)
按钮对象被销毁时触发,用于资源清理。

四、信号使用场景对比

信号

使用场景

clicked()

绝大多数普通点击功能(弹窗、提交、跳转)

pressed()

长按连续操作、按下瞬间反馈

released()

松手后执行逻辑

toggled()

开关按钮、复选式按钮(开启/关闭功能)

连接示例

// 按下瞬间 connect(ui->pushButton, &QPushButton::pressed, this, [=](){ qDebug() << "按钮被按住了"; }); // 松开 connect(ui->pushButton, &QPushButton::released, this, [=](){ qDebug() << "松开按钮"; }); // 开关按钮状态切换 ui->pushButton->setCheckable(true); connect(ui->pushButton, &QPushButton::toggled, this, [=](bool ck){ if(ck) qDebug() << "开启"; else qDebug() << "关闭"; });
http://www.gsyq.cn/news/1545687.html

相关文章:

  • 终极免费音乐解锁工具:如何在浏览器中一键解密所有加密音乐格式 [特殊字符]
  • 2026年6月诚信的废气治理工程厂商推荐,废气处理工程/工业废气处理/废气治理工程,废气治理工程生产厂家推荐分析 - 品牌推荐师
  • 低漏电<1μA:HT4088HA充电芯片待机功耗表现与防倒灌性能解读
  • 2026年诚信的花生油/烟台脱红衣冷榨清香花生油厂家对比推荐 - 品牌宣传支持者
  • 华硕笔记本色彩配置文件修复终极指南:5步让屏幕恢复出厂级显示效果
  • 2026年有实力的宁波木工工具工作台/宁波家用木工工作台多家厂家对比分析 - 行业平台推荐
  • 2026年优秀的外卖封口贴纸定做/医药专用标签贴纸厂家精选合集 - 行业平台推荐
  • 3步解锁Spotube:重塑免费音乐体验的开源神器
  • 昆仑万维天工3.1上线:Skywork Design与Dynamic Workflows革新设计与任务调度
  • 供应链成本函数:用经济学思维重构机器学习损失函数
  • 2026年靠谱的昆山倍速链/昆山自动化倍速链/昆山输送线倍速链/昆山单层倍速链精选厂家推荐 - 行业平台推荐
  • 计算机毕业设计之深圳二手房价数据可视化分析
  • 从零到98%:如何用NumPy实现多层感知机(MLP)识别手写数字?
  • Streamlit机器学习部署:零前端门槛的交互式模型交付方案
  • 本地生活推广通预算与出价的计算框架
  • 2026年专业的宁波塑料工作台/多功能木工工作台/宁波可调节工作台/便携式工作台源头工厂推荐 - 品牌宣传支持者
  • 【雷达发射机设计】 第16章 分布式相参发射与协同探测
  • 2026年评价高的昆山单层倍速链/昆山积放式倍速链/昆山双层倍速链长期合作厂家推荐 - 品牌宣传支持者
  • Ubuntu 24.04 LTS 安装部署与优化实战指南
  • 线上机器学习模型性能劣化诊断四层框架
  • 2026年可靠的智能色粉色母混色机/金华智能混色机深度厂家推荐 - 行业平台推荐
  • VLA多模态融合 机械狗实现野外复杂地形自主作业
  • 金刚石亦难敌尺度效应:性能大打折扣
  • 选购指南:如何精准匹配国标与美标17-4PH不锈钢厂商 - 品牌2026
  • 2026年6月行业内比较好的换气堵头厂家推荐,人防法兰/插板阀/风量测量装置/双连杆密闭阀,换气堵头直销厂家找哪家 - 品牌推荐师
  • 2026上海徐汇区新高一数学补课班筛选标准:逻辑强化、稳步提分测评
  • Prompt Engineering实战:从随机提问到精准控模,大模型调用的工程化方法论
  • Spark最新版本与Spark2.0的区别
  • CAP与BASE理论详解
  • 选材不踩坑:如何筛选专业且信誉良好的Inconel718高温合金厂家 - 品牌2026