2015-06-02 101 views
0

我开发了一个Qt/C++应用程序。我已经添加了一个线程来管理Android设备访问和UI管理的另一个线程。将信号连接到Qt中的插槽时出现问题

当运行应用程序,我发送不同的信号和接收插槽。

对于其中的一些,我面对的问题与下面的错误在运行时:

QObject::connect: Cannot queue arguments of type 'uint32_t' 
(Make sure 'uint32_t' is registered using qRegisterMetaType().) 

我该怎么办?是否有必要对所有类或main.cpp进行更改?

+3

您是否尝试过使用'qRegisterMetaType()'注册'uint32_t'? – Amartel

+0

@Amartel。我真的不知道该在哪里做...它是一个我们可以在main.cpp中完成的拍摄,还是我必须在类实例化中进行拍摄? – Seb

+3

在第一次“连接”之前,您只需要做一次。是的,你可以在'main'函数中完成,或者甚至静态地如下所示:'static const int i00 = qRegisterMetaType < uint32_t >(“uint32_t”);'。 – Amartel

回答

1

最简单的方法是在信号和插槽的参数中使用quint32而不是uint32_tquint32已在您的元类型系统中预先注册。