QDBusPendingReply: type(custom) not registered with QtDBus issue even when registered custom type it.
-
Hi,
I am using an custom type which is Qlist of a structure. I am performing all the steps which are mentioned to register it but while executing i am getting runtime error "QDBusPendingReply: type Mylist not registered with QtDBus".
Please find snippet of my code:-struct MyStruct { quint8 a; quint32 b; double c; quint32 d; };typedef QList<MyStruct> MyList;
Q_DECLARE_METATYPE(MyStruct)
Q_DECLARE_METATYPE(MyList)QDBusArgument &operator<<(QDBusArgument &, const MyStruct&);
const QDBusArgument &operator>>(const QDBusArgument &, MyStruct&);QDBusArgument &operator<<(QDBusArgument &argument, const MyStruct &myStruct)
{
argument.beginStructure();
argument << myStruct.a<< myStruct.b<< myStruct.c<< myStruct.d;
argument.endStructure();
return argument;
}const QDBusArgument &operator>>(const QDBusArgument &argument, MyStruct &myStruct)
{
argument.beginStructure();
argument >> myStruct.a>> myStruct.b>> myStruct.c>> myStruct.d;
argument.endStructure();
return argument;
}void registerMetaTypes()
{
qDBusRegisterMetaType<MyStruct>();
qDBusRegisterMetaType<MyList>();qRegisterMetaType<MyStruct>("MyStruct");
qRegisterMetaType<MyList>("MyList");
}I am facing error at below mentioned line in my code:-
QDBusPendingReply<int, QList<MyStruct> > reply(*watch);Please suggest if any other change is required to be done.
-
Hi,
I haven't used that module yet but one thing you should do is remove the string argument from your
qRegisterMetaTypecalls. This version of the function is to register alias types.Hope it helps
-
When are you calling these functions ?