#include #include class A : public QObject { Q_OBJECT public: A() { connect(this, &A::sig0, this, &A::sig1); m_th = std::thread([this](){ emit sig0(QPrivateSignal{}); }); } void wait() { m_th.join(); } signals: void sig0(QPrivateSignal); void sig1(QPrivateSignal); private: std::thread m_th; };