1

例如,我有一个类Document,它有一个私有成员QUndoStack,它有一个信号cleanChanged()。当成员发出信号时,我希望包含类Document发出同名的信号,或者可以将来自成员的信号转移到包含类。于是,外界知道cleanChanged发生了。

4

1 回答 1

5

您需要将 Document 与 QUndoStack 的信号连接起来。您无需创建插槽并从中发出信号。您可以将信号添加到 Document 并将 Document 的信号与 QUndoStack 的信号连接起来。

一旦 QUndoStack 发出信号,Document 也会发出信号。

编辑:

这是一个例子。它可能无法编译,它的目的只是向您展示诀窍。

class Document: public QObject
{
        QUndoStack *m_QUndoStack;
        public:

        Document(QObject *parent): QObject(parent), m_QUndoStack(new QUndoStack(this))
        {
                //here we do the trick:
                connect(m_QUndoStack, SIGNAL(somesignal()), this, SIGNAL(somesignal());
        }

signals:
        void somesignal();
};
于 2013-08-26T17:20:27.387 回答