QT::QVariant
QVariant类像是最常见的Qt的数据类型的一个共用体。
一个QVariant对象在一个时间只保存一个单一类型的单一值。
使用toT()函数来将QVariant对象转换为T类型。并且获取他的值。
toT()函数会复制QVariant对象,然后对其转换。所以QVariant对象并不会改变。
对于一个类型是否可以转换为一个特殊类型,可以使用canConvert()函数来判断。如果可以转换,则该函数返回true。
也可使用convert()函数将一个类型转换为其他不同的类型。如果转换成功则返回true。
如果无法进行转换,variant对象将会被清空。并且返回false.对于同一种转换,两函数convert(),并不一定返回相同的结果。
QVariant v1(15); qDebug() << v1.toInt(); // 结果为15 QVariant v2(12.3); qDebug() << v2.toFloat(); // 结果为12.3 QVariant v3("nihao"); qDebug() << v3.toString(); // 结果为"nihao" QColor color = QColor(Qt::red); QVariant v4 = color; qDebug() << v4.type(); // 结果为QVariant::QColor qDebug() << v4.value<QColor>(); // 结果为QColor(ARGB 1,1,0,0) QString str = "hello"; QVariant v5 = str; qDebug() << v5.canConvert(QVariant::Int); // 结果为true qDebug() << v5.toString(); // 结果为"hello" qDebug() << v5.convert(QVariant::Int); // 结果为false qDebug() << v5.toString(); // 转换失败,v5被清空,结果为"0"
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步