QT中的元对象系统(一):QVariant的简单说明

来源:互联网 发布:人工智能对社会的影响 编辑:程序博客网 时间:2024/05/20 09:46

       原创文章,转载请注明出处,谢谢!       
       作者:清林,博客名:飞空静渡


       QVariant可以表示QT中的大部分类型,它和pascal中的variant类型或c中的void类型有点相似,不过它的使用和c中的union类似,其实现也是用union,在qvariant.h头文件中,我们可以看到这样定义:

      

      

我们可以用type()成员函数来返回它的类型:Type QVariant::type () const

为了取得它的值,我们可以用类似的toT()这样的函数来取得,如toInt()、toString()等。

基本的使用如下:



QViriant支持空值的使用,你可以定义一个空的QViriant,并在后面才给它赋值。


QVariant是定义在QtCore库中的,前面说的qvariant.h就在QtCore目录下,因此它不提供类似于toInt()、toString()这样的函数去转化QtGui中的类型,如QColor、QImage和QPixmap等。但你可以使用QVariant::value()或者qVariantValue()模板函数转化。

相反的赋值就可以这样:


你可以使用canConvert()确定是否可以转化。

原创粉丝点击