//指针和引用类型的参数都用如下方式注册,
//qRegisterMetaType<CFileData>("stPenPageData&")这种方式注册不行
qRegisterMetaType<stPenPageData>("stPenPageData");
qRegisterMetaType<stUploadRecord>("stUploadRecord");
if (!OfflineDataServer::Instance()->isRunning())
{
connect(OfflineDataServer::Instance(), SIGNAL(signalNewBuildSinglePageToFile(const stPenPageData)), OfflineDataFrame::Instance(), SLOT(NewBuildSinglePageToFileSlot(const stPenPageData)));
connect(OfflineDataServer::Instance(), SIGNAL(signalNewBuildSubmitRecord(const stUploadRecord)), OfflineDataFrame::Instance(), SLOT(NewBuildSubmitRecordSlot(const stUploadRecord)));
OfflineDataServer::Instance()->start();
}
【注】
不跨线程的话,使用自定义的类型使用signal/slot来传递,没有什么问题。但如果是跨线程的使用,则没有这么简单。
直接使用的话,会产生下面这种错误:(假定自定义类为MyClass)
QObject::connect: Cannot queue arguments o