我有一個問題來創建一個結構自定義插槽/信號。我有以下代碼:對象::連接:沒有這樣的信號
qRegisterMetaType<namespace::myClassA::aStruct>();
QObject::connect(&myClassA, SIGNAL(theSignal(myClassA::aStruct)),
&myClassB, SLOT(theSlot(myClassA::aStruct)));
當運行我的程序:
Object::connect: No such signal NameSpace::myClassA::theSignal(myClassA::aStruct)
Object::connect: (receiver name: 'NameSpace__CLASSNAME')
我該如何解決這個問題?
PS:插槽和信號已經在頭文件被正確申報文件Q_SIGNALS和Q_SLOTS關鍵字,用正確的參數(aStruct)
您是否在執行信號和插槽後運行'qmake'? – PrisonMonkeys 2013-02-08 13:22:42
Q_DECLARE_METATYPE/qRegisterMetatype不需要,它也不會幫助直接連接(當兩個對象都在同一個線程中時默認) – 2013-02-08 14:32:52
對我來說,即使看起來像小小的針腳,也會妨礙正常運行:SIGNAL(PageClosed (QWidget *頁面))產生了一個錯誤。我刪除了參數:頁面,並被接受。 – peter70 2018-03-02 09:32:30