QVariant使用
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使用相关推荐
- 关于QVariant 的学习一点分享
关于QVariant 的学习一点分享 目录 **关于QVariant 的学习一点分享** Variant类的开发手册解读 QVariant 类的支持的类型: 常用函数: QVariant 变量在类之间 ...
- QT学习:容器类及QVariant类
Qt提供了一组通用的基 于模板的容器类.对比C++的标准模板库中的容器类,Qt 的这些容器更轻量.更安全并且更容易使用. 存储在Qt容器中的数据必须是可赋值的数据类型,也就是说,这种数据类型必须提供一 ...
- Qt文档阅读笔记-QVariant::value()与qvariant_cast解析及使用
目录 官方解析 博主栗子 QVariant::value()的小栗子 qvariant_cast小栗子 QVariant在容器中的使用 官方解析 QVariant::value()与qvariant_ ...
- Qt学习之路(51): QByteArray和QVariant
转:http://devbean.blog.51cto.com/448512/276235 前面我们在介绍QString的最后部分曾经提到了QByteArray这个类.现在我们就首先对这个类进行介绍. ...
- 信号与槽QVariant传递结构体指针
目录 一.使用情景 二.使用步骤 1.全局宏定义 2.示例: 一.使用情景 1.在使用带参数的信号与槽的时候,有时需要传递不常见的结构或者自定义结构,此时需要用到QVariant来传参,如果想传递多个 ...
- QVariant类及QVariant与自定义数据类型转换的方法
这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型"擦除"的作用.比如我们的 table单元格可以是string,也可以是int ...
- QT QVariant类数据类型使用
QT QVariant类数据类型使用 1. QVariant 类用于封装数据成员的类型及取值等信息,该类类似于 C++ 共用体 union ,一个QVariant 对象,一次只能保存一个单一类型的值. ...
- Qlist+QMap+QVariant使用
1.QList的使用 QList<int> list; //向list中添加内容 list<<1<<2<<3<<4<<5; // ...
- QString, QByteArray, 和 QVariant用法详解
转载地址:http://blog.chinaunix.net/uid-24205507-id-3262013.html QString, QByteArray, 和 QVariant这三个类和容器有许 ...
- QVariant方法功能(QT5.12)
//for starf study#include "mainwindow.h" #include "ui_mainwindow.h"#include<Q ...
最新文章
- 第十七届全国大学生智能车竞赛开始啦
- WPF与Win32互操作
- 065_const关键字
- java复制两个对象报异常_Java中复制两个不同类的对象的属性
- OpenCV离散傅立叶变换DFT的实例(附完整代码)
- SCCM 2007 R2部署、操作详解系列之部署篇
- liunx 命令 之 mkdir 与 touch
- Android handler.obtainMessage()传字符串用法
- 厦门宏发有机器人_2020新版福建省厦门工业机器人工商企业公司名录名单黄页大全23家...
- vue3图片对比组件
- 最通俗易懂---多分类学习之OvO、OvR、MvM
- いくつかの愛に心が飛作者が恋しい
- 四位数的可逆素数c语言,求四位的可逆素数。可逆素数指:一个素数将其各位数字的顺序倒过来构成的反序数也是素...
- Java 导入Excel数据
- MATLAB 冒泡算法
- 海量GIS文章,软件教程,GIs编程奉送!!(转)
- 云原生架构的核心技术
- 通过搜狗抓取微信公众号--------破解url
- 做一个官网企业网站费用大概需要多少钱?
- AFNetworking2.4.1解析
热门文章
- c语言全局变量 extern,全局变量和extern详解
- C++的继承,封装,多态
- [嵌入式方案][nrf51822] BLE HID+NUS的组合
- 局域网电脑禁止ping通的解决方法
- 停止字jQuery中图片隐藏效果的的所有方法
- mysql商品查询,mysql基本查询
- 送从兄郜 / 韦郜 / 途中别孙璐 出自唐代方干
- Qt Quick 5.2 开发笔记3-------qml界面之自定义TitleBar
- 软件面试体总结待完善
- Alertmanager邮箱和企业微信的告警模板分享