[英]Qt signal from thread causes error
我有一个线程,需要从该线程将带有参数的信号发送到指针,如下所示:
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,因为已经设计了将QWebElement用作引用的插槽原型,但是如果要将信号从一个线程发布到另一个线程,这不是一个好主意,请参见此处 。 无论如何,正如Laszlo指出的那样,您必须注册基本类型,而用参考标记(&)注册类型是没有意义的。
我不确定为什么要尝试用&
注册它,但要这样做,请按以下步骤操作:
qRegisterMetaType<QWebElement>("myElement");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.