我有一个线程,我需要将带有参数的信号发送到指针,如下所示:
connect(insThread, SIGNAL(sgGetCurrentElement(QWebElement&)), this, SIGNAL(sgGetCurrentElement(QWebElement&)));
其中insThread是thred。但是我收到了错误:
QObject::connect: Cannot queue arguments of type ‘QWebElement&’ (Make sure ‘QWebElement&’ is registered using qRegisterMetaType().)
我已经知道我需要使用qRegisterMetaType,但我无法弄清楚如何构建它。我试过了
qRegisterMetaType<QWebElement&>("myElement");
但失败了。我该如何解决这个问题?
感谢。
答案 0 :(得分:1)
我假设您正在尝试使用引用(&amp;)注册QWebElement,因为已将插槽原型化以将QWebElement作为参考,但如果您将信号从一个线程发布到,则这不是一个好主意另一个,见here。无论如何,正如Laszlo指出的那样,你必须注册基类型,用参考标记(&amp;)注册类型是没有意义的。
答案 1 :(得分:0)
我不确定您为什么要尝试将其注册到&
,但如果没有这样做,请执行以下操作:
qRegisterMetaType<QWebElement>("myElement");