寫了一個這樣的信號
void caculateReady( QList<QString> adds, QList<double> hotV, QList<double> coolV);
編譯時正常,運行時了現錯誤
Object::connection: Cannot queue arguments of type 'QList<QString>'
(Make sure 'QList<QString>' is registered using qRegisterMetaType().))
原因:自定義的數據類型作為信號槽參數傳遞的時候,需要使用 qRegisterMetaType() 函數對該參數進行注冊
代碼修改如下:
-
//添加文件引用
-
-
//注冊參數類型
-
qRegisterMetaType<QList<QString> > ( "QList<QString>");
這樣,這個QList<QString>就可以作為信號參數來傳遞了
F1出現的help文檔中的定義為:
-
int qRegisterMetaType ( const char * typeName )
-
//實例
-
qRegisterMetaType<MyClass> ("MyClass");
qRegisterMetaType的返回值為自定義類型的ID
參考:http://blog.csdn.net/kusey/article/details/7995815
