Qvariant类类似于C++的联合(union)数据类型,不仅能够保存很多的QT类型的值, 包括QColor,QBrush,QFont,QPen,QRect,Qstring和Qsize等,也能够存放Qt容器类型的值
QVariant v(7);
qDebug()<<v.toInt();
QVariant vs("Hello Word");
qDebug()<<vs.toString();
QMap<QString,QVariant> map;
map["int"] = 7;
map["double"] = 7.02;
map["strng"] = "hello word";
map["color"] = QColor(255,0,0);
//调用输出
qDebug()<<map["int"]<<map["int"].toInt();
qDebug()<<map["double"]<<map["double"].toDouble();
//...
qDebug()<<map["color"]<<map["color"].value<QColor>();//后面的括号不能忘写
QStringList sl;
sl<<"a"<<"b"<<"c"<<"d"<<"e";
QVariant vt(sl);
if(vt.type()==QVariant::StringList)
{
QStringList list=vt.toStringList();
for(int i =0;i<list.size();i++)
{
qDebug()<<list.at(i);//输出列表内容
}
}
更为详细的QVariant的使用以及深入请转到:https://blog.csdn.net/ddllrrbb/article/details/81638713写的很好。
变量 | 对应的类型 | 变量 | 对应的类型 |
---|---|---|---|
QVariant::Invalid | 无效类型 | QVariant::Time | QTime |
QVariant::Region | QRegion | QVariant::Line | QLine |
QVariant::Bitmap | QBitmap | QVariant::Palette | QPalette |
QVariant::Bool | bool | QVariant::List | QList |
QVariant::Brush | QBrush | QVariant::SizePolicy | QSizePolicy |
QVariant::Size | QSize | QVariant::String | QString |
QVariant::Char | QChar | QVariant::Map | QMap |
QVariant::Color | QColor | QVariant::StringList | QStringList |
QVariant::Cursor | QCursor | QVariant::Point | QPoint |
QVariant::Date | QDate | QVariant::Pen | QPen |
QVariant::DateTime | QDateTime | QVariant::Pixmap | QPixmap |
QVariant::Double | QDouble | QVariant::Rect | QRect |
QVariant::Font | QFont | QVariant::Image | QImage |
QVariant::Icon | QIcon | QVariant::UserType | 用户自定义类型 |