说明
QVariant可以表现出Qt数据类型中最普遍的行为。
一个QVariant对象中一次只保留一个type()的单个值(有的type()可以是多值的,例如StringList),可以用convert()将它的类型转换为不同的类型,用toT()(这里的并不是实际的函数,T是一个泛型)获取它的值,如toInt(), toString(),它们返回的值是const的。
如果一个QVariant在定义时就是一个null值,那么它在转化为其它类型时,依然是null。
GUI类型
由于QVariant是Qt Core模块的一部分,所以它并不提供和Qt GUI类型(如QColor、QImage、QPixmap)进行转换的函数,也就是说,不存在toColor()函数。不过,我们可以用QVariant::value()或qvariant_cast()模板函数进行转换,例如,下文是把一个QVariant转换为QColor的代码:
QVariant variant;
...
QColor color = variant.value<QColor>();
逆向转化(将QColor转换为QVariant)对所有类型(包括Core和GUI)都是自动进行的:
QColor color = palette().background().color();
QVariant variant = color;
1、模块和加载项