例如,我有一个班级Document
,其中有一个私人会员QUndoStack
,其信号为cleanChanged()
。当成员发出信号时,我希望包含类Document
发出一个具有相同名称的信号,或者来自该成员的信号可以转移到包含类。因此,外界知道cleanChanged
发生了。
答案 0 :(得分:5)
您需要使用QUndoStack的信号连接Document。您无需创建插槽并从中发出信号。您只需向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();
};