qt学习代码:信号槽&自定义信号槽

//1.信号槽eg1

#include “mainwindow.h”
#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton button(“Quit”);
QObject::connect(&button,&QPushButton::clicked,&QApplication::quit);
button.show();

return app.exec();

}

//2.eg2

#include “mainwindow.h”
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton button(“Quit”);
QObject::connect(&button,&QPushButton::clicked,
{
qDebug()<<”You clicked me!”;
});

button.show();

return app.exec();

}

//3.自定义信号槽

”newspaper.h”

#ifndef NEWSPAPER_H
#define NEWSPAPER_H

#include
#include
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;
};
#endif // NEWSPAPER_H

“reder.h”

#ifndef REDER_H
#define REDER_H

#include
#include
#include
class Reder:public QObject
{
Q_OBJECT
public:
Reder(){}

void receiveNewspaper(const QString &name)
{
    qDebug()<<"Receives Newspaper:"<

};
#endif // REDER_H

“main.cpp”

#include “mainwindow.h”
#include
#include
#include “newspaper.h”
#include “reder.h”

int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
Newspaper newspaper(“Newspaper A”);
Reder reder;
QObject::connect(&newspaper,&Newspaper::newPaper,&reder,&Reder::receiveNewspaper);
newspaper.send();
return app.exec();
}


你可能感兴趣的:(qt学习代码:信号槽&自定义信号槽)