The QVariant class acts like a union for the most common Qt data types.
QVariant 类作用类似与绝大部分Qt数据类型。

Because C++ forbids unions from including types that have non-default constructors or destructors, most interesting Qt classes cannot be used in unions. Without QVariant, this would be a problem for QObject::property() and for database work, etc.
A QVariant object holds a single value of a single type() at a time. (Some type()s are multi-valued, for example a string list.) You can find out what type, T, the variant holds, convert it to a different type using convert(), get its value using one of the toT() functions (e.g., toSize()) and check whether the type can be converted to a particular type using canConvert().

因为C++禁止联合体包含非默认构造函数或析构函数的类型,所以大多数有趣的QT类不能用于联合。如果没有QVariant,这对QObject::property()和数据库工作来说都是一个问题

QVariant对象一次只保存一个类型()的单个值。(有些类型()是多值的,例如字符串列表。)您可以找出变量所包含的类型T,使用convert()将其转换为其他类型,使用toT()函数之一(例如toSize())获取其值,并使用canConvert()检查是否可以将该类型转换为特定类型。

QDataStream out(...);QVariant v(123);                // The variant now contains an intint x = v.toInt();              // x = 123out << v;                       // Writes a type tag and an int to outv = QVariant("hello");          // The variant now contains a QByteArrayv = QVariant(tr("hello"));      // The variant now contains a QStringint y = v.toInt();              // y = 0 since v cannot be converted to an intQString s = v.toString();       // s = tr("hello")  (see QObject::tr())out << v;                       // Writes a type tag and a QString to out...QDataStream in(...);            // (opening the previously written stream)in >> v;                        // Reads an Int variantint z = v.toInt();              // z = 123qDebug("Type is %s",            // prints "Type is int"v.typeName());v = v.toInt() + 100;            // The variant now hold the value 223v = QVariant(QStringList());

QVariant使用相关推荐

  1. 关于QVariant 的学习一点分享

    关于QVariant 的学习一点分享 目录 **关于QVariant 的学习一点分享** Variant类的开发手册解读 QVariant 类的支持的类型: 常用函数: QVariant 变量在类之间 ...

  2. QT学习:容器类及QVariant类

    Qt提供了一组通用的基 于模板的容器类.对比C++的标准模板库中的容器类,Qt 的这些容器更轻量.更安全并且更容易使用. 存储在Qt容器中的数据必须是可赋值的数据类型,也就是说,这种数据类型必须提供一 ...

  3. Qt文档阅读笔记-QVariant::value()与qvariant_cast解析及使用

    目录 官方解析 博主栗子 QVariant::value()的小栗子 qvariant_cast小栗子 QVariant在容器中的使用 官方解析 QVariant::value()与qvariant_ ...

  4. Qt学习之路(51): QByteArray和QVariant

    转:http://devbean.blog.51cto.com/448512/276235 前面我们在介绍QString的最后部分曾经提到了QByteArray这个类.现在我们就首先对这个类进行介绍. ...

  5. 信号与槽QVariant传递结构体指针

    目录 一.使用情景 二.使用步骤 1.全局宏定义 2.示例: 一.使用情景 1.在使用带参数的信号与槽的时候,有时需要传递不常见的结构或者自定义结构,此时需要用到QVariant来传参,如果想传递多个 ...

  6. QVariant类及QVariant与自定义数据类型转换的方法

    这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型"擦除"的作用.比如我们的 table单元格可以是string,也可以是int ...

  7. QT QVariant类数据类型使用

    QT QVariant类数据类型使用 1. QVariant 类用于封装数据成员的类型及取值等信息,该类类似于 C++ 共用体 union ,一个QVariant 对象,一次只能保存一个单一类型的值. ...

  8. Qlist+QMap+QVariant使用

    1.QList的使用 QList<int> list; //向list中添加内容 list<<1<<2<<3<<4<<5; // ...

  9. QString, QByteArray, 和 QVariant用法详解

    转载地址:http://blog.chinaunix.net/uid-24205507-id-3262013.html QString, QByteArray, 和 QVariant这三个类和容器有许 ...

  10. QVariant方法功能(QT5.12)

    //for starf study#include "mainwindow.h" #include "ui_mainwindow.h"#include<Q ...

最新文章

  1. 第十七届全国大学生智能车竞赛开始啦
  2. WPF与Win32互操作
  3. 065_const关键字
  4. java复制两个对象报异常_Java中复制两个不同类的对象的属性
  5. OpenCV离散傅立叶变换DFT的实例(附完整代码)
  6. SCCM 2007 R2部署、操作详解系列之部署篇
  7. liunx 命令 之 mkdir 与 touch
  8. Android handler.obtainMessage()传字符串用法
  9. 厦门宏发有机器人_2020新版福建省厦门工业机器人工商企业公司名录名单黄页大全23家...
  10. vue3图片对比组件
  11. 最通俗易懂---多分类学习之OvO、OvR、MvM
  12. いくつかの愛に心が飛作者が恋しい
  13. 四位数的可逆素数c语言,求四位的可逆素数。可逆素数指:一个素数将其各位数字的顺序倒过来构成的反序数也是素...
  14. Java 导入Excel数据
  15. MATLAB 冒泡算法
  16. 海量GIS文章,软件教程,GIs编程奉送!!(转)
  17. 云原生架构的核心技术
  18. 通过搜狗抓取微信公众号--------破解url
  19. 做一个官网企业网站费用大概需要多少钱?
  20. AFNetworking2.4.1解析

热门文章

  1. c语言全局变量 extern,全局变量和extern详解
  2. C++的继承,封装,多态
  3. [嵌入式方案][nrf51822] BLE HID+NUS的组合
  4. 局域网电脑禁止ping通的解决方法
  5. 停止字jQuery中图片隐藏效果的的所有方法
  6. mysql商品查询,mysql基本查询
  7. 送从兄郜 / 韦郜 / 途中别孙璐 出自唐代方干
  8. Qt Quick 5.2 开发笔记3-------qml界面之自定义TitleBar
  9. 软件面试体总结待完善
  10. Alertmanager邮箱和企业微信的告警模板分享