Преобразование списка в список QVariant или QVariant - PullRequest
11 голосов
/ 13 февраля 2012

Моя проблема в этом. У меня есть списки различных числовых типов, например:

QList<qreal> mylist;

Теперь в моем коде есть функция, которая ожидает аргумент QVariant, который является mylist. Единственный способ сделать это - использовать for cyle и просто добавить все данные из mylist во второй список

QList<QVariant> temp, 

например, и передача temp в качестве параметра.

Мне было интересно, есть ли другой способ сделать это.

Большое спасибо.

1 Ответ

15 голосов
/ 13 февраля 2012

Мне приходилось делать это несколько раз, и, насколько мне известно, единственный способ - это создать новый список.

Если это то, что вам часто приходится делать с различными типами списков, вы можете сделать это.что-то более изворотливое:

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.

...