无法在 Qt 中连接到来自外部 class 的信号

Unable to connect to signal from outside class in Qt

我有一个 EmitSignal class 这样的:

class EmitSignal : public QObject
{
    Q_OBJECT
public:
    EmitSignal() {
        emit emittedSignal();
        qDebug() << "Signal emitted";
    }
signals:
    void emittedSignal();
}; 

而在ConnectSlot class中是这样的:

class ConnectSlot : public QMainWindow
{
    Q_OBJECT
public:
    ConnectSlot() {
        connect(&emitSignalObject, &EmitSignal::emittedSignal, this, &ConnectSlot::connectToSlot);
    }

    EmitSignal emitSignalObject;

public slots:
    void connectToSlot() {
        qDebug() << "Connected";
    }
};

如您所见,我尝试连接 signalslot,但似乎没有触发 slot。我得到的唯一输出是:Signal emitted

为什么插槽未连接,我该如何正确连接?
谢谢

您正在从 EmitSignal 的构造函数发出信号。该构造函数将 运行 在 ConnectSlot 的构造函数主体开始执行之前。

因此信号会在建立连接之前发出。

您需要更改代码,以便在触发信号之前建立连接。