今天线程传值中传容器发现子线程给主线程发信号的时候报错了,出现QObject::connect: Cannot queue arguments of type '******',该信息通过注册类型来解决容器传输报错的问题。
本文作者原创,转载请附上文章出处与本文链接。
原因:因为该传输类型信号没有定义,不像QString、int等等常见类型直接发信号就可以。
解决方法:定义一个该类型。
示例:
mainwindow.h
void collect_one_mySlot(vector<QImage> v_image);
mainwindow.cpp
//初始化
qRegisterMetaType<vector<QImage>>("vector<QImage>");
connect(collect_one, &collectone::isDone, this, &MainWindow::collect_one_mySlot);
//函数
void MainWindow::collect_one_mySlot(vector<QImage> v_image)
{
}