QT | 信号槽问题:Cannot queue arguments of type xxx,(Make sure xxx is registed using qRegisterMetaType...
当信号和槽连接方式为Qt::QueuedConnection时,如果传递的的参数不是Qt自带的参数的话则无法通过编译
我也是在不同线程连接信号槽,传递std::string时出现的...
[解决方法]
#include ...qRegisterMetaType("std::string");//用你要用的类型 这样Qt能识别好了
***
首先看这个Qt::QueuedConnection官方的介绍
The slot is invoked when control returns to the event loop of the receiver's thread. The slot is executed in the receiver's thread. 然后看这个 https://stackoverflow.com/questions/17121554/using-stdstring-fails-signals-and-slots
"If you are using queued connections, you need to register std::string as meta type. Use Q_DECLARE_METATYPE(std::string) in one of your headers. Call qRegisterMetaType(); in the initialization of your code." 就这句话!OK
转载于:https://www.cnblogs.com/HY12345/p/11360694.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
