[Interest] Is it safe to call qRegisterMetaType() before main()?

Thiago Macieira thiago.macieira at intel.com
Tue Jul 30 02:52:59 CEST 2019


On Monday, 29 July 2019 13:28:04 PDT Nikos Chantziaras wrote:
> > This is only required when referring to it by name, such as in old-style
> > signal-slot connection, QML, D-Bus, etc.
> 
> They're new-style connections, but are sometimes of QueuedConnection
> type since some connections are used for inter-thread communication. If
> I don't use Q_ENUM or Q_REGISTER_METATYPE (and thus also don't call
> qRegisterMetatype(),) the connections won't work and you get this at
> runtime:
> 
>    QObject::connect: Cannot queue arguments of type 'MyClass::MyEnum'

The queuing is actually "old style" since it goes back to the meta object 
string format to get the parameter types.

Olivier, didn't you have at some point a patch that made the meta object 
register all parameters as metatypes on request? That would solve Nikos's 
problem.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products





More information about the Interest mailing list