Qt::QList 转为 QVariant

来源:互联网 发布:手柄要下载什么软件 编辑:程序博客网 时间:2024/05/01 03:18

用到的主要函数

QVariant(const QList<QVariant> &val)
void QVariant::setValue(const T &value)
QVariant QVariant::fromValue(const T &value)

示例代码

  QList<QString> strList;    strList.push_back("hello");    strList.push_back("world");    //构造函数转换    QVariant vrt(strList);    if (vrt.canConvert<QVariantList>()) {        QSequentialIterable iterable = vrt.value<QSequentialIterable>();        for (const QVariant &v : iterable) {            qDebug() << v;            qDebug() << v.toString(); //转为QString        }    }    qDebug() << "--------------";    QList<int> intList;    intList.push_back(1);    intList.push_back(11);    intList.push_back(111);    //非构造函数转换    QVariant variant;    // variant= QVariant::fromValue(intList); 或    variant.setValue<QList<int>>(intList);    if (variant.canConvert<QVariantList>()) {        QSequentialIterable iterable = variant.value<QSequentialIterable>();        //foreach方式遍历:        foreach (const QVariant &v, iterable) {            qDebug() << v;            qDebug()<<v.toInt();        }         qDebug() << "--------------";        // C++11 for遍历:        for (const QVariant &v : iterable) {            qDebug() << v;        }        qDebug() << "--------------";        // 迭代器遍历        QSequentialIterable::const_iterator it = iterable.begin();        const QSequentialIterable::const_iterator end = iterable.end();        for ( ; it != end; ++it) {            qDebug() << *it;        }    }
1 0
原创粉丝点击