Qt5 学习之路及嵌入式开发:自定义信号槽例子

  1. 建立工程

2、建立工程名称

3、下一步

4、完成

5、点击文件->新建文件或项目

6、完成

7、添加代码:②为添加部分

 

8、同样方法建立reader.h //②为添加部分

 

9、在main.cpp修改代码:①②为添加部分

 

10、运行,查看结果:①为运行部分

11、附:代码

#include <QObject>

 
////////// newspaper.h

class Newspaper : public QObject

{

    Q_OBJECT

public:

    Newspaper(const QString & name) :

        m_name(name)
    {

    }

 
    void send()

    {

        emit newPaper(m_name);

    }

 
signals:

    void newPaper(const QString &name);

private:

    QString m_name;

};

 
////////// reader.h

#include <QObject>

#include <QDebug>


class Reader : public QObject

{

    Q_OBJECT

public:

    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();

}

 

更多推荐