Qt容器QVariant

在Qt中,QVariant是一个通用的值容器,它可以存储任意类型的数据,例如整数、字符串、列表等等。其主要用于提供一种通用的数据类型,方便在不同的函数、类、模块之间传递数据。

QVariant类是Qt的共用体union数据类型,不仅能保存很多Qt类型的值,包括QColor、QBrush、QFont、QRect、QString及QSize等等,而且能存放Qt的容器类型值。可采用toT()将QVariant对象转换称为T类型并获取其值。如toInt()、toFloat()、toString(),可用type()方法获取数据类型,判断数据是否可。对于GUI模块中定义的数据类型没有相应的转换函数,即没有toColor()、没有toImage()这样的函数提供,可通过value()方法实现转换,判断两种类型是否可以转换时可通过canConvert()方法的返回值判断。

因此,虽然QVariant是Qt Core库的一部分,但并未提供对Qt GUI模块中定义的数据类型(如QColor、QImage、QPixmap等)进行转换的函数。不过,可以使用QVariant::value()函数或者qvariant_cast()模板函数来完成这样的转换。

    //整型
    QVariant vNum(100);
    qDebug()<();

    QVariant vss = vStr;
    //QVariant vss = 1000;

    //返回数据类型转换的能力
    qDebug()<< vss.canConvert(QVariant::Int);
    qDebug()<

你可能感兴趣的:(Qt项目学习,qt,开发语言,c++)