2012-02-13 6 views
10

私の問題はこれです。私は、例えば、異なる数値型のリストを持っている:QVariantまたはQVariantリストとしてキャストする

QList<qreal> mylist; 

は今、私のコードで私はマイリストあるQVariant引数を期待している機能を持っています。私はこれを行うために見つけた唯一の方法はcyleのために使用して、単に第二のリストに例えば

QList<QVariant> temp, 

をマイリスト内のすべてのデータを追加し、PARAMTERとしてTEMPを渡すことです。

これを行う方法が他にあるかどうか疑問に思っていました。

ありがとうございました。

答えて

14

私はこれを何度もやらなければならず、私の知る限り唯一の方法は新しいリストを作成することです。

これはあなたが少し凝っ行うことができ、リストの種類を変えることで、頻繁にしなければならない何かがある場合:あなたはQVariantリストに取るあなたの関数を呼び出すとき

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

    return newList; 
} 

だから、あなただけのことができます呼び出す

myFunction(toVariantList(myList)); 

この関数は、暗黙的にQVariantに変換できるタイプでのみ機能することに注意してください。

+1

これは私が恐れていることです。ありがとうございました! – aarelovich

+0

注QVariant自体はすでに 'QList 'から 'QVariantList'に変換できます。つまり、QVariantを使用して変換を実行することもできます。 – Dreamcooled

関連する問題