このマクロを使用して、型を q メタ型として宣言すれば、変換することができQList<YourType>
ます。QVariant
Q_DECLARE_METATYPE(MyType);
その後、変換は暗黙的です。
QList<MyType> list;
QVariant variant = QVariant::fromValue(list);
今私の質問は、にvariant
戻す方法QList<MyType>
です。
QVariant
provides method canConvert<T>
that you can use to check:
if( variant.canConvert<QList<MyType>>() ) {
QList<MyType> list = variant.value<QList<MyType>>();
...
}
コメントで得たものと受け入れられた回答を明確に組み合わせるだけです。
QList<MyType> convertToMyType(QVariant variant) {
if( variant.canConvert<QList<MyType>>() ) {
return variant.value<QList<MyType>>();
}
else {
// Exception? Empty list?
// depends on circumstances
}
}