我有一个线程,需要从该线程将带有参数的信号发送到指针,如下所示:

connect(insThread, SIGNAL(sgGetCurrentElement(QWebElement&)), this, SIGNAL(sgGetCurrentElement(QWebElement&)));

其中insThread是最重要的。但是我得到了错误:
QObject::connect: Cannot queue arguments of type ‘QWebElement&’ (Make sure ‘QWebElement&’ is registered using qRegisterMetaType().)

我已经知道我需要使用qRegisterMetaType,但是我不知道如何构造它。我试过了
qRegisterMetaType<QWebElement&>("myElement");

但失败了。我该如何解决?

谢谢。

最佳答案

我假设您正在尝试使用引用(&)注册QWebElement,因为已经对插槽进行了原型(prototype)设计,可以将QWebElement作为引用,但是如果要将信号从一个线程发布到另一个线程,则这不是一个好主意,请参阅here 。无论如何,正如Laszlo指出的那样,您必须注册基本类型,而用参考标记(&)注册类型是没有意义的。

关于c++ - 来自线程的Qt信号导致错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22886736/

10-10 21:24