将列表转换为QVariant或QVariant列表

时间:2012-02-13 17:46:17

标签: qt qvariant

我的问题是这个。我有不同数字类型的列表,例如:

QList<qreal> mylist;

现在,在我的代码中,我有一个函数,它需要一个QVariant参数,它是一个mylist。我发现这样做的唯一方法是使用for cyle并简单地将mylist中的所有数据添加到第二个列表

QList<QVariant> temp, 
例如

,并将temp作为参数传递。

我想知道是否有其他办法可以做到这一点。

非常感谢。

1 个答案:

答案 0 :(得分:15)

我必须多次这样做,据我所知,唯一的方法是创建一个新列表。

如果您需要经常使用不同类型的列表,那么您可以做一些更有趣的事情:

template <typename T>
QVariantList toVariantList( const QList<T> &list )
{
    QVariantList newList;
    foreach( const T &item, list )
        newList << item;

    return newList;
}

这样当您调用接收QVariant列表的函数时,您只需调用

即可
myFunction( toVariantList(myList) );

请注意,给定的函数仅适用于可以隐式转换为QVariants的类型。