emit02.h:
#ifndef EMIT02_H
#define EMIT02_H
#include <QObject>
class emit02 : public QObject
{
Q_OBJECT
public:
// explicit emit02(QObject *parent = nullptr);
static emit02* Get_test_emit();
// emit02 *Get_test_emit01();
private:
emit02();
static emit02* m_test_emit;
// emit02(QObject *parent = nullptr);
signals:
void ts_single01();
public slots:
void ts_slot01();
};
void addd(int a, int b);
#endif // EMIT02_H
emit02.cpp:
#include "emit02.h"
#include <QDebug>
#include <QMutex>
emit02 *emit02::m_test_emit = NULL;
emit02 *emit02::Get_test_emit()
{
qDebug() << "Get_test_emit ";
if (m_test_emit == NULL) {
QMutex mutex; ///加锁为了线程安全
mutex.lock();
if (m_test_emit == NULL)
m_test_emit = new emit02();
mutex.unlock();
}
return m_test_emit;
}
emit02::emit02()
{
// connect(this,&emit02::ts_single01,this,&emit02::ts_slot01);
// connect(m_test_emit,SIGNAL(ts_single01()),m_test_emit,SLOT(ts_slot01()));
qDebug() << "emit02";
connect(this,SIGNAL(ts_single01()),this,SLOT(ts_slot01()));
}
void emit02::ts_slot01()
{
qDebug() << "this is ts_slot01 function!";
}