我可以方便地将QVariant转换回QList<MyType>吗?



如果使用以下宏将类型声明为q元类型,则可以将QList<YourType>转换为QVariant

Q_DECLARE_METATYPE(MyType);

之后,转换甚至是隐含的:

QList<MyType> list;
QVariant variant = QVariant::fromValue(list);

现在我的问题是如何将variant转换回QList<MyType>

QVariant提供了可以用于检查的方法canConvert<T>

 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
   }
}

相关内容

  • 没有找到相关文章

最新更新