QT(3).自定义信号槽
#include "subwdget.h" subwdget::subwdget(QWidget *parent) : QWidget(parent) { this->setWindowTitle("employ"); cg_.setParent(this); cg_.setText("change to boss"); connect(&cg_,&QPushButton::released,this,&subwdget::senslot); } void subwdget::senslot() { emit mysignals(); }
#ifndef SUBWDGET_H #define SUBWDGET_H #include <QWidget> #include <QPushButton> class subwdget : public QWidget { Q_OBJECT public: explicit subwdget(QWidget *parent = nullptr); void senslot(); signals: void mysignals(); private: QPushButton cg_; }; #endif // SUBWDGET_H
自定义信号槽需要注意的事项
发送者和接收者都需要是subwdget的子类(当然,槽函数是全局函数、Lambda 表达式等无需接收者的时候除外);
使用 signals 标记信号函数,信号是一个函数声明,返回 void,不需要实现函数代码;
槽函数是普通的成员函数,作为成员函数,会受到 public、private、protected 的影响;
使用 emit 在恰当的位置发送信号;

浙公网安备 33010602011771号