QVariant 容器
- QVariant类是Qt的共用体union数据类型,不仅能保存很多Qt类型的值,包括QColor,QBrush,QFont,QRect,QString及QSize等等,而且能存放Qt的容器类型值。
- 可采用toT()将QVariant对象转换称为T类型并获取其值。如toInt(),toFloat(),toString(),可用type方法获取数据类型,判断数据是否可。对于GUI模块中定义的数据类型没有相应的转换函数,即没有toColor(),没有toImage()这样的函数提供,可通过value()方法实现转换,判断两种类型是否可以转换时可通过canConvert()方法的返回值判断。
- 新建桌面应用程序,基类选择QWidget,widget.cpp添加头文件
QVariant vNum(100);
qDebug() << vNum.toInt();
QVariant vPI(3.14);
qDebug() << vPI.toFloat();
QVariant vStr("Hello!");
qDebug() << vStr.toString();
QVariant vBool(false);
qDebug() << vBool.toBool();
QColor color = QColor(Qt::yellow);
QVariant vColor(color);
qDebug() << vColor.type();
qDebug() << vColor.value<QColor>();
QVariant vchar('c');
QVariant vss = vchar;
qDebug() << vss.canConvert(QVariant::Int);
qDebug() << vss.toString();
qDebug() << vss.convert(QVariant::Int);
qDebug() << vss;
qDebug() << vss.toString();