QVariant 万能数据类型为各种数据类型之间的转换提供了可能。
使C++的强数据类型可能成为了弱数据类型。
Qt下的QVariant只支持已注册的数据类型,可以将自定义的类等注册,使得QVariant可以识别自定义的类。

myStructor c;
QVariant v;
v.setValue (c);    //将会错误--Qvariant还不认识myStructor呢。Q_DECLARE_METATYPE(myStructor)。使用Q_DECLARE_METATYPE在 **全局中** 注册v.value < myStructor >(); 取值方法
例子:
将一个指针赋予QVariant--可能有需要将一个指针赋予树型列表控件(QTreeWidget)中一个条目--点击此条目获取指针对数据进行处理--而无须通过查找来取得数据--缩短处理时间。用int指针作为例子--QVariant不支持此类型必须先注册。
ifndef __XXX__
define __XXX__Q_DECLARE_METATYPE(int*);endif附带记下如何在QTreeWidget控件中附加数据增加Item
QTreeWidgetItem* newItem = new QTreeWidgetItem;...增加newItem到treeWidget中...int* itemVal = new int (123);
QVariant Var;
Var.setValue (testVal); // 已注册了int*--正确编译
newItem->setData (0, 0, Var); //newItem的第一列附加了Var--即指向itemVal的指针//第二个参数为role角色的意思--我也不懂啥意思点击某个条目获取对应的数据
on_treeWidget_click ()
{...取得选择的条目-curItem...//Data()的参数和当时设置数据的参数一样,value()是取得var的数据int* ptr = curItem->Data (0, 0).value < int* >(); ...对ptr进行处理...
}

转载自 http://blog.chinaunix.net/uid-10554711-id-2948398.html

QVariant类 万能数据类型相关推荐

  1. 万能数据类型QVariant类

      前面学习了Qt中的模型-视图,在模型中有一个常用的模型类,通用模型类QStandardItemModel,它是既支持表格形式存放数据项,又支持树形存放数据项的模型,在日常开发中比较常用.在讲解QV ...

  2. QT QVariant类数据类型使用

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

  3. QVariant万能数据类型联合

    QVariant类型的放入和取出必须是相对应的,你放入一个int就必须按int取出.比如你把int包装成一个QVariant,使用的时候要用 QVariant::toInt()重新取出来. QVari ...

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

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

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

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

  6. 万能数据类型any杂谈

    万能数据类型boost::any杂谈 1.boost::any 与 _variant_t 刚接触boost::any时,不禁让人想起了MS的_variant_t类,因为两者都可以存放其他的类型的值. ...

  7. QT基础之QVariant类

    文章目录 更多参见 QT基础与实例应用目录 QVariant类类似于C++的联合数据类型,既可以保存很多QT类型的值,包括QColor.QBrush.QFont.QPen.QRect.QString和 ...

  8. QVariant 类的应用

    1.概述 QVariant 是Qt中的一个类,它可以存储任何数据类型的值,并提供了一些方便的方法来转换这些值,同时也可以在Qt中使用信号和槽机制传递任何类型的数据. QVariant可以存储各种基本数 ...

  9. 理解Java自定义类作为数据类型——引用数据类型

    目录 说在前面的话 复现问题 引用数据类型的理解 总结 说在前面的话 前言:Java的数据类型按照类型可分为基本数据类型(byte.short.int.long.double.float.char.b ...

最新文章

  1. 子视图屏蔽父视图手势
  2. 第十六届全国大学生智能车竞赛RT-Thread创新专项奖获奖名单
  3. 一个JS打开链接并隐藏来源的方法
  4. PyQt5 图形界面-用Qt Designer来设计UI界面,并转化为python代码运行实例演示
  5. 7.1 数据库的性质
  6. 用状态机STATE MACHINE实现有选择的文件转换
  7. UITableView定制accessoryView出现的连带问题
  8. 在 CentOS 上安装和配置 Xen 虚拟化
  9. handler和thread之间如何传输数据_HTTP和TCP之间的关系
  10. 首席架构师眼里的架构本质
  11. 关于SRTM精度的讨论[文摘]
  12. 第6堂视频课:看到词句就会读-下
  13. 巧妙突破大容量邮箱附件大小限制(zz)
  14. Adaptive AUTOSAR Diagnostic Manager模块介绍(一)
  15. 解决deepin系统中某磁盘的文件为只读文件
  16. Java8 Collectors.joining() 详解
  17. 禁用wordpress5.2自动裁剪图片功能
  18. Aimersoft Video Converter Ultimate Mac(全能视频转换器)
  19. 如何制作动态海报?教你一招在线合成GIF海报
  20. Bear Rallies Turn Market Into a Circus

热门文章

  1. 相机与激光测距仪的外参标定(提升相机标定)
  2. PINDEL检测结构变异
  3. 操作系统-ucore-lab1 Bootloader启动操作系统 A20 GDT全局描述符 使能和进入保护模式 ELF格式os 8259A中断控制器 8253定时器 函数调用堆栈跟踪函数
  4. 工程伦理 第八章习题 答案
  5. IP创建选择PIN属性模板
  6. 杨辉三角(超简单的思路)
  7. 十分钟搭建一个EFK集群
  8. Collections.sort()使用
  9. 用高斯消元法解异或方程组
  10. 速美时代,让美丽走进智能共享时代!