QVariant 类是 Qt 的共 用体 union 数据 类型, 不仅 能保存 很多 Qt 类型 的值, 包括
QColor,QBrush,QFont,QRect,QString 及 QSize 等等,而且能存放 Qt 的容器类型值。
可采用 toT()将 QVariant 对象转换称为 T 类型并获取其值。如 toInt(),toFloat(),toString(),可
用 type 方法获取数据类型,判断数据是否可。
对于 GUI 模块中定义的数据类型没有相应的转换函数,即没有 toColor(),没有 toImage()这样的函数提供,可通过 value()方法实现转换,判断两种类型是否可以转换时可通过 canConvert()方法的返回值判断。
QVariant vi(10);
//to<T>转化相应类型
qDebug() << vi.toInt();
QVariant vq("hello");
QColor c = QColor(Qt::red);
QVariant vc = c;
qDebug() << vc.type();//type()显示数据类型
qDebug() << vc.value<QColor>();//查看颜色值
QVariant vss = vq;
//返回数据转化的能力
qDebug() << vss.canConvert(QVariant::Int);
qDebug() << vss.toString();
//返回数据的转化条件:有转化能力,数据类型匹配
qDebug() << vss.convert(QVariant::Int);
qDebug() << vss.toString();
//退出应用程序
QTimer::singleShot(0,qApp,SLOT(quit()));