一、QVariant
1.1、简介
QVariant类类似于C++的联合(union)数据类型,它不仅能保存很多Qt类型的值,包括QColor、QFont、QString等,也能存放Qt的容器类型的值。Qt的很多功能都是建立在QVariant基础上,如Qt的对象属性及数据库功能。
1.2、示例
1.2.1、使用Varient存放基础类型
使用Varient存放基础类型数据,如下
QVariant v(10); // 存放int类型
qDebug() << v.toInt();
QVariant str("hello"); // 存放QString类型
qDebug() << str.toString();
1.2.2、调用type()成员函数判断存储数据类型
QVariant::type()函数返回存储在QVariant变量中的值的数据类型。QVariant::StringList是Qt定义的一个QVariant::type枚举类型的变量,如下:
QStringList strList;
strList.append("AAA");
strList.append("BBB");
strList.append("CCC");
QVariant slv(strList);
// 通过type成员函数获取QVariant变量实际存储的数据类型
if (slv.type() == QVariant::StringList) {
QStringList list = slv.toStringList();
for (int i = 0; i < list.size(); i ++) {
qDebug() << list[i];
}
}