2012-02-13 3 views
10

제 문제는 이것입니다. 나는 예를 들어, 서로 다른 숫자 유형의 목록이 있습니다리스트를 QVariant 또는 QVariant리스트로 캐스팅

QList<qreal> mylist; 

지금, 내 코드에서 나는 그 myList에있는 QVariant 인수를 기대하는 기능을 가지고있다. 내가이 일을 찾은 유일한 방법은 cyle의를 사용하여 간단하게 예를 들어 두 번째 목록

QList<QVariant> temp, 

에 myList에있는 모든 데이터를 추가하고, 있었던 파라미터로 온도를 전달하는 것입니다.

다른 방법이 있는지 궁금합니다.

대단히 감사합니다.

답변

14

나는 이것을 여러 번해야했으며, 나의 지식으로는 유일한 방법은 새로운 목록을 만드는 것입니다.

이 당신이 조금 애호가 뭔가 할 수있는 목록의 유형을 다양 자주해야 할 일이있는 경우 : 당신이 QVariant 목록에 걸리는 함수를 호출 할 때

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

    return newList; 
} 

그래서, 당신은 할 수 주어진 함수는 암시 QVariants로 변환 할 수있는 유형의 작동합니다

myFunction(toVariantList(myList)); 

주를 호출합니다.

+1

그것은 내가 두려워했던 것입니다. 고맙습니다! – aarelovich

+0

참고 QVariant 자체는 이미'QList '에서'QVariantList'로 변환 할 수 있습니다. 즉, QVariant를 사용하여 변환을 수행 할 수도 있습니다. – Dreamcooled