1
例如,我有一個類Document
,它有一個私人會員QUndoStack
,它有一個信號cleanChanged()
。當成員發出信號時,我希望包含類Document
發出具有相同名稱的信號,或者來自成員的信號可以傳送到包含類。因此外面知道cleanChanged
發生了。如何在其成員發出信號時發出信號?
例如,我有一個類Document
,它有一個私人會員QUndoStack
,它有一個信號cleanChanged()
。當成員發出信號時,我希望包含類Document
發出具有相同名稱的信號,或者來自成員的信號可以傳送到包含類。因此外面知道cleanChanged
發生了。如何在其成員發出信號時發出信號?
您需要將文檔與QUENDoStack的信號連接起來。您不需要創建插槽並從中發出信號。您可以將信號添加到文檔並將文檔信號與QUODStack的信號相連接。
只要QUENDoStack發出信號,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();
};
如何不創建一個插槽並從中發射信號?你能告訴我一點小小的代碼嗎? – user1899020