在使用中遇到了”emit信号,但是ui线程并没有收到”的问题,经过排查发现如果信号函数没有参数ui县城可以接收,但是有参数就不能接收。
原因是在qt中这样的局部变量需要通过”注册元数据”的形式先注册才可以使用
解决方案:
在main函数中写
qRegisterMetaType<"类型">( "类型" );
如类型是string,那么写
qRegisterMetaType<std::string>("std::string");
头文件是 QMetaType