信号槽传递非Qt库类型参数时,出现QObject::connect: Cannot queue arguments of type 'string'(Make sure 'string' is regi...

例如以C++标准库中string做参数,则会出现:

QObject::connect: Cannot queue arguments of type 'string'

(Make sure 'string' is registed using qRegisterMetaType().)

解决方案:

可以再main中加入:

qRegisterMetaType<string>("string");注册该类型

在跨线程的信号和槽的参数传递中, 参数的类型是自定义的类型, 然而此时出现了错误: Q Object :: connect : Cannot queue arguments of type 'Pos' (Make sure 'Pos' is registered using qRegisterMeta Type ().) 其中, Pos是自定义的类型: struct Pos { int x...
[Qt]Q Object :: connect : Cannot queue arguments of type 'Q String &'的解决方法 在主线程和子线程中,通过信号与槽发送Q String ,遇到 Q Object :: connect : Cannot queue arguments of type 'Q String &'问题 错误代码: connect (this,SIGNAL(emStar...
今天线程传值中传容器发现子线程给主线程发信号的时候报错了,出现Q Object :: connect : Cannot queue arguments of type '******',该信息通过注册类型来解决容器传输报错的问题。 本文作者原创,转载请附上文章出处与本文链接。
1、问题描述 跨线程使用信号和槽时,如果是非const的引用传参,就会报如下的错误: Q Object :: connect : Cannot queue arguments of type 'Q String &' (Make sure 'Q String &' is registered using qRegisterMeta Type ().) 2、测试示例 #include <QCoreApplication> #include <QThread> #include <Q
在线程中通过信号和槽函数传递信息的时候,由于用到了自己定义的参数结构:QHashint , pMsg>,于是在发生信号传递的时候出现了报错: Q Object :: connect : Cannot queue arguments of type "QHashint , pMsg>",(Make sure "QHashint ,pMsg>" is registed using qRegist
Q Object :: connect : Cannot queue arguments of type 'QList<quint16>' (Make sure 'QList<quint16>' is registered using qRegisterMeta Type ().) 这个是由于,在主线程中开启另一个线程,这两个线程之间需要进行信息的交互。但是QList<quint16>l类型没有被注册,只要你注册一下就解决了。 解决方法:
2 错误描述 在不同线程之间通过信号/槽来传递自定义数据类型QList的时候,提示错误: Q Object :: connect : Cannot queue arguments of type 'QList' (Make sure 'QList' is registered using qRegist    Q Object :: connect : Cannot queue arguments of type 'QMap&lt;Q String ,Q String &gt;',(Make sure 'QMap&lt;Q String ,Q String &gt;' is registered using qRegisterMeta Type ().).      上述错误,只有在跨线程信号传递时才会出现.  因为Q...