QVariant类

QVariant 容器

  • QVariant类是Qt的共用体union数据类型,不仅能保存很多Qt类型的值,包括QColor,QBrush,QFont,QRect,QString及QSize等等,而且能存放Qt的容器类型值。
  • 可采用toT()将QVariant对象转换称为T类型并获取其值。如toInt(),toFloat(),toString(),可用type方法获取数据类型,判断数据是否可。对于GUI模块中定义的数据类型没有相应的转换函数,即没有toColor(),没有toImage()这样的函数提供,可通过value()方法实现转换,判断两种类型是否可以转换时可通过canConvert()方法的返回值判断。
  • 新建桌面应用程序,基类选择QWidget,widget.cpp添加头文件
//定义一个int类型的QVariant
    QVariant vNum(100);
    qDebug() << vNum.toInt();

//定义一个float类型的QVariant
    QVariant vPI(3.14);
    qDebug() << vPI.toFloat();

//定义一个字符串类型的QVariant
    QVariant vStr("Hello!");
    qDebug() << vStr.toString();

//定义一个bool类型的QVariant
    QVariant vBool(false);
    qDebug() << vBool.toBool();

//定义一个颜色类
    QColor color = QColor(Qt::yellow);
    QVariant vColor(color);
    qDebug() << vColor.type();
    qDebug() << vColor.value<QColor>();

//QString转换为int类型
    QVariant vchar('c');
    QVariant vss = vchar;
    
	//返回数据类型转换的能力
    qDebug() << vss.canConvert(QVariant::Int);
    qDebug() << vss.toString();
    
    //转换成功条件: 有转换能力, 对应的数据类型匹配
    //如果转换失败, 原数据会被覆盖
    qDebug() << vss.convert(QVariant::Int);
    qDebug() << vss;
    qDebug() << vss.toString();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值