QPushButton所有按钮信号都继承自父类QAbstractButton另外还继承QWidget、QObject的通用信号。一、按钮核心业务信号最常用来自 QAbstractButton1.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只有状态真的改变才会发参数checkedtrue选中false取消选中ui-pushButton-setCheckable(true); // 开启可切换 connect(ui-pushButton, QPushButton::toggled, this, MainWindow::onToggle);二、继承自 QWidget 的通用界面信号按钮也能用void customContextMenuRequested(const QPoint pos)右键点击按钮时触发pos 是鼠标坐标用于弹出右键菜单。void windowTitleChanged(const QString title)窗口标题变化按钮自身无窗口基本不用void windowIconChanged(const QIcon icon)鼠标/焦点类通用信号所有控件都有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() 关闭; });