QVariant类

来源:互联网 发布:wpf 管理系统源码购 编辑:程序博客网 时间:2024/06/05 17:00

QVariant类类似于C++的联合数据类型,它不仅能够保存很多Qt类型的值,包括QColor, QBrush, QFont, QRect, QString, QSize等,也能够存放Qt 的容器类型的值。Qt的很多功能都是建立在QVariant基础上的,如Qt的对象属性及数据库功能。
举例:

#include "widget.h"#include <QDebug>#include <QVariant>#include <QColor>Widget::Widget(QWidget *parent)    : QWidget(parent){    QVariant v(709);    qDebug()<<v.toInt();    QVariant w("How are you!");    qDebug()<<w.toString();    QMap<QString,QVariant>map;    map["int"] = 709;    map["double"] = 709.709;    map["string"] = "How are you!";    map["color"] = QColor(255,0,0);    //调用相应的转换函数并输出    qDebug()<<map["int"]<<map["int"].toInt();    qDebug()<<map["double"]<<map["double"].toDouble();    qDebug()<<map["string"]<<map["string"].toString();    qDebug()<<map["color"]<<map["color"].value<QColor>();    QStringList s1;    s1<<"A"<<"B"<<"C"<<"D";    QVariant slv(s1);       //将该列表保存在一个QVariant变量中    if (slv.type() == QVariant::StringList)    {        QStringList list = slv.toStringList();        for (int i=0;i < list.size();++i)            qDebug()<<list.at(i);    }}Widget::~Widget(){}

输出结果:

QVariant(double, 709.709) 709.709QVariant(QString, "How are you!") "How are you!"QVariant(QColor, QColor(ARGB 1, 1, 0, 0)) QColor(ARGB 1, 1, 0, 0)"A""B""C""D"
0 0
原创粉丝点击