(C++) QtSignalExample1
February 24, 2017 · View on GitHub
(C++) QtSignalExample1
Technical facts
Operating system(s) or programming environment(s)
Lubuntu 15.04 (vivid)
Qt Creator 3.1.1
- G++ 4.9.2
Libraries used:
STL: GNU ISO C++ Library, version
4.9.2
Qt project file: ./CppQtSignalExample1/CppQtSignalExample1.pro
include(../../DesktopApplication.pri) SOURCES += \ main.cpp \ emitter.cpp \ receiver.cpp HEADERS += \ emitter.h \ receiver.h
./CppQtSignalExample1/emitter.h
#ifndef EMITTER_H #define EMITTER_H #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #pragma GCC diagnostic ignored "-Wunused-but-set-parameter" #include <QObject> #pragma GCC diagnostic pop class Emitter : public QObject { Q_OBJECT public: explicit Emitter(QObject *parent = 0); void DoEmit() const noexcept; signals: void signal_emit() const; }; #endif // EMITTER_H
./CppQtSignalExample1/emitter.cpp
#include "emitter.h" #include <iostream> Emitter::Emitter(QObject *parent) : QObject(parent) { } void Emitter::DoEmit() const noexcept { std::clog << "Emitter: emitting signal" << std::endl; emit signal_emit(); }
./CppQtSignalExample1/main.cpp
#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #pragma GCC diagnostic ignored "-Wunused-but-set-parameter" #include "emitter.h" #include "receiver.h" #pragma GCC diagnostic pop int main() { const Emitter e; const Receiver r; QObject::connect(&e,SIGNAL(signal_emit()),&r,SLOT(OnReceive())); e.DoEmit(); } /* Screen output: Emitter: emitting signal Receiver: received signal */
./CppQtSignalExample1/receiver.h
#ifndef RECEIVER_H #define RECEIVER_H #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #pragma GCC diagnostic ignored "-Wunused-but-set-parameter" #include <QObject> #pragma GCC diagnostic pop class Receiver : public QObject { Q_OBJECT public: explicit Receiver(QObject *parent = 0); public slots: void OnReceive() const noexcept; }; #endif // RECEIVER_H
./CppQtSignalExample1/receiver.cpp
#include "receiver.h" #include <iostream> Receiver::Receiver(QObject *parent) : QObject(parent) { } void Receiver::OnReceive() const noexcept { std::clog << "Receiver: received signal" << std::endl; }