QVariant类似于联合数据类型,能够保存QColor,QBrush,QPen等类型,也能够保存容器类型的值。
#include <QDebug>
#include<QVariant>
#include<QMap>
#include<QColor>
int main(int argc, char *argv[])
{
QVariant var1(7);//创建一个变量,并初始化
qDebug()<<var1.toInt();//转为整型,并输出
QVariant var2("hello qt!");//创建一个变量,初始化为字符串
qDebug()<<var2.toString();//转换为c++字符串并输出
QMap <QString,QVariant> map;
map["int"]=7;
map["double"]=7.9;
map["string"]="hello qt!";
map["color"]=QColor(0,0,0);
qDebug()<<map["int"]<<map["int"].toInt();
qDebug()<<map["double"]<<map["int"].toDouble();
qDebug()<<map["string"]<<map["int"].toString();
qDebug()<<map["color"]<<map["int"].value<QColor>();
QStringList list1;//字符串列表
list1<<"A"<<"B"<<"C"<<"D";
QVariant Vlist(list1);//保存
if(Vlist.type()==QVariant::StringList)
{
QStringList str=Vlist.toStringList();//将Vlist中的字符串列表保存在str中
for(int i=0;i<str.size();++i)
{
qDebug()<<str.at(i);//输出列表内容
}
}
return 0;
}