我有一个线程,我需要从中发送一个带有参数的信号到一个指针,如下所示:
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/