信号和槽函数的使用

1. 编写基本的 信号和 槽函数

1> 自定义的信号函数只需要声明,不需要定义
2> 自定义的类放在头文件中,我把类放在cpp文件中,会编译失败
3> 需要关注特殊的关键字,Q_OBJECT signals slots SIGNAL SLOT

$cat work.h 
#include <QObject>
#include <iostream>
using namespace std;

class Send: public  QObject {
Q_OBJECT
signals:
    void mySig(); // 只用声明, moc 会定义
};

class Recv: public QObject {
Q_OBJECT
public slots:
    void mySlot();
};

$cat main.cpp 
#include <QApplication>
#include "work.h"

void Recv::mySlot() {
    cout << "槽函数被调用" << endl;
}

int main(int argc, char* argv[]) {

    QApplication app(argc, argv);

    Send s;
    Recv r;
    QObject::connect(&s, SIGNAL(mySig()), &r, SLOT(mySlot()));
    /* emit*/ s.mySig();
    return app.exec();
}

 

posted @ 2025-04-11 22:30  靖意风  Views(9)  Comments(0)    收藏  举报