12

私の問題はこれです。たとえば、さまざまな数値型のリストがあります。

QList<qreal> mylist;

さて、私のコードには、mylist である QVariant 引数を期待する関数があります。これを行う唯一の方法は、 for cyle を使用し、 mylist 内のすべてのデータを 2 番目のリストに単純に追加することです。

QList<QVariant> temp, 

たとえば、パラメータとして temp を渡します。

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

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

4

1 に答える 1

16

私はこれを数回しなければなりませんでしたが、私の知る限り、唯一の方法は新しいリストを作成することです.

これが、さまざまな種類のリストで頻繁に行う必要がある場合は、少し手の込んだことを行うことができます。

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

    return newList;
}

QVariant リストを受け取る関数を呼び出すときに、次のように呼び出すことができます。

myFunction( toVariantList(myList) );

指定された関数は、暗黙的に QVariant に変換できる型に対してのみ機能することに注意してください。

于 2012-02-13T18:38:01.920 に答える