QT自定义槽

来源:互联网 发布:网络大电影人群分析 编辑:程序博客网 时间:2024/06/04 18:51
//!!! Qt5#include <QObject>////////// newspaper.hclass Newspaper : public QObject//必须继承自QObject才可以使用信号和槽{    Q_OBJECT  //必须声明这个宏public:    Newspaper(const QString & name) :        m_name(name)    {    }    void send()    {        emit newPaper(m_name);  //emit 发送这个信号    }signals:    void newPaper(const QString &name);//信号可以不实现                //(可无函数体)private:    QString m_name;};////////// reader.h#include <QObject>#include <QDebug>class Reader : public QObject{    Q_OBJECTpublic:    Reader() {}    void receiveNewspaper(const QString & name)    {        qDebug() << "Receives Newspaper: " << name;    }};////////// main.cpp#include <QCoreApplication>#include "newspaper.h"#include "reader.h"int main(int argc, char *argv[]){    QCoreApplication app(argc, argv);    Newspaper newspaper("Newspaper A");    Reader reader;    QObject::connect(&newspaper, &Newspaper::newPaper,                     &reader,    &Reader::receiveNewspaper);    newspaper.send();//发送这个信号    return app.exec();}
原创粉丝点击