qt学習コード:信号スロット&カスタム信号スロット

1792 ワード

//1.信号溝eg 1


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

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