如果我注册如下自定义类型,用于排队连接:
Q_DECLARE_METATYPE(MyClass);
qRegisterMetaType<MyClass>();
我可以将队列连接中的类型与这样的信号一起使用:
void MySignal(MyType o);
现在我也想使用带有这样信号的类型:
void MyVectorSignal(QVector<MyType> v);
我记得我在某处读到 Qt 自动允许将已注册类型与容器一起使用,而无需显式注册特定类型/容器组合。
但这对我不起作用。我还必须注册容器:
Q_DECLARE_METATYPE(QVector<MyType>);
qRegisterMetaType<QVector<MyType>>();
如果没有后一个注册码,它应该工作吗?这真的有必要吗?容器应该开箱即用吗?