我的问题是这个。我有不同数字类型的列表,例如:
QList<qreal> mylist;
现在,在我的代码中,我有一个函数,它需要一个 QVariant 参数,即 mylist。我发现这样做的唯一方法是使用 for cyle 并将 mylist 中的所有数据添加到第二个列表
QList<QVariant> temp,
例如,并将 temp 作为参数传递。
我想知道是否有其他方法可以做到这一点。
非常感谢你。
我不得不这样做几次,据我所知,唯一的方法是创建一个新列表。
如果这是您必须经常使用不同类型的列表做的事情,您可以做一些更花哨的事情:
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 的类型。