如何在其成员发出信号时发出信号

How to emit a signal when its member emits one?

本文关键字:信号 成员      更新时间:2023-10-16

例如,我有一个类Document,它有一个私有成员QUndoStack,它有信号cleanChanged()。当成员发出信号时,我希望包含类Document发出具有相同名称的信号,或者来自成员的信号可以传输到包含类。从而使外界知道CCD_ 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();
};