2015-06-02 134 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已在您的元類型系統中預先註冊。