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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部