Qt QVariant
Qt QVariant
- QVariant 介绍
- 自定义类型转换为 QVarient 使用
QVariant 介绍
QVariant 支持内置的 QMetaType 类型,可以和这些类型之间互相转换。
自定义类型转换为 QVarient 使用
有些函数的参数为 QVariant,如果要使用自定义的结构体或者枚举作为参数,则需要用 Q_DECLARE_METATYPE
宏声明:
enum CusType
{TYPE_ONE = 1,TYPE_TWO = 2,TYPE_THREE = 3
};Q_DECLARE_METATYPE(CusType)void MainWindow::dealType()
{bool ok = false;//QVariant 转换为 QMeataType类型QVariant v1(123);qDebug() << "v1.typeName = " << v1.typeName() << ", canConvert<int>() = " << v1.canConvert<int>()<< ", int = " << v1.toInt(&ok) << ", ok = " << ok;QVariant v2("123");qDebug() << "v2.typeName = " << v2.typeName() << ", canConvert<int>() = " << v2.canConvert<int>()<< ", int = " << v2.toInt(&ok) << ", ok = " << ok;QVariant v3("123s");qDebug() << "v3.typeName = " << v3.typeName() << ", canConvert<int>() = " << v3.canConvert<int>()<< ", int = " << v3.toInt(&ok) << ", ok = " << ok;QString str3 = v3.value<QString>();QVariant v4(tr("123"));qDebug() << "v4.typeName = " << v4.typeName() << ", canConvert<int>() = " << v4.canConvert<int>()<< ", int = " << v4.toInt(&ok) << ", ok = " << ok;//自定义类型转换为 QVariantQVariant v5 = QVariant::fromValue(CusType::TYPE_ONE);qDebug() << "v5.typeName = " << v5.typeName() << ", canConvert<int>() = " << v5.canConvert<int>()<< ", int = " << v5.toInt(&ok) << ", ok = " << ok;//QVariant 转换为 自定义类型int i5 = v5.value<CusType>();qDebug() << "i5 = " << i5;
}
输出:
可以看到 v3
,转换为 int
类型失败,但 v3.canConvert<int>()
结果为 true
。
Qt QVariant相关推荐
- QT QVariant类数据类型使用
QT QVariant类数据类型使用 1. QVariant 类用于封装数据成员的类型及取值等信息,该类类似于 C++ 共用体 union ,一个QVariant 对象,一次只能保存一个单一类型的值. ...
- Qt QVariant详细用法
一.简介 QVariant可以存储各种数据类型,QVariant行为类似于C/C++的union, 但在Qt中比union强大很多, QVariant内置支持所有QMetaType::Type里声明的 ...
- qt -- QVariant 类
1.QVariant 类用于封装数据成员的类型及取值等信息,该类类似于 C++共用体 union,一个QVariant 对象,一次只能保存一个单一类型的值.该类封装了 Qt 中常用的类型,对于 QVa ...
- 【QT】Qt调用OCX控件详解
OCX控件的注册 首先,调用ocx控件需要保证ocx本身是已经注册了的.如果没有注册请先按"Win+R"输入"cmd"打开命令窗口.然后输入regsvr32 + ...
- pyrcc5将resources.qrc转换成py文件
需要通过pyrcc5将resources.qrc转换成py文件,并在主程序引入. pyrcc5 -o resources_rc.py resources.qrc 用python3+PyQt5改写Pyt ...
- QT学习:容器类及QVariant类
Qt提供了一组通用的基 于模板的容器类.对比C++的标准模板库中的容器类,Qt 的这些容器更轻量.更安全并且更容易使用. 存储在Qt容器中的数据必须是可赋值的数据类型,也就是说,这种数据类型必须提供一 ...
- Qt学习之路(51): QByteArray和QVariant
转:http://devbean.blog.51cto.com/448512/276235 前面我们在介绍QString的最后部分曾经提到了QByteArray这个类.现在我们就首先对这个类进行介绍. ...
- Qt/C++ 借助QVariant实现可存储通用类型的容器
1. 背景 在项目开发过程中,我们可能会遇到这么一种场景:某个或某几个软件组件可以产生许多不同类型的数据,无论是出于性能的考虑,或者是接口简洁性的考虑,这些数据需要被一次性塞到一个类似于数据库的数据容 ...
- QT基础之QVariant类
文章目录 更多参见 QT基础与实例应用目录 QVariant类类似于C++的联合数据类型,既可以保存很多QT类型的值,包括QColor.QBrush.QFont.QPen.QRect.QString和 ...
最新文章
- go kegg_零基础 GO 与 KEGG 分析,手把手教你用多种途径实现!
- 黄东旭:Cloud-Native 的分布式数据库架构与实践
- Python NumPy-快速处理数据
- SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别
- 【linux】Centos 初始安装后开启网络以及配置静态IP
- 李彦宏纳猛将,技术才是百度的未来
- Ecliipse-Alt+斜杠(/)不提示
- 谈360下拉词360下拉框的优势及360搜索推广方法有哪些?
- bzoj 1023: [SHOI2008]cactus仙人掌图(仙人掌求直径)
- 解决Jquery Kendo.xxx is not a function 的方法
- Dubbox服务的消费方配置
- 使用stm32控制驱动步进电机
- 软件图形用户界面设计
- el-tree实现类似windows文件列表,并支持折叠、展开和重命名
- 免疫的特异性和非特异性
- 一名开源工程师的自白
- 解读:信贷业务风控逾期指标及风控模型评估指标
- 2018/7/10功能点解读
- 关闭mybatis 日志
- 你找的网络安全系列书籍,都在这了
热门文章
- 此远程计算机不支持remoteapp,[Tips] 使用 RemoteApp 方式访问远程桌面上的应用程序...
- 表面看是营销书,其实是励志书——Leo鉴书77
- Python Split函数升级版
- Css 实现边界 凹陷 状态
- php 0.01毫米对折,全球首创:0.01毫米最薄柔性显示屏,手机可以折叠成腕表!
- Linux(Centos8)防火墙设置
- vue blob流下载zip文件,下载后包文件显示文件损坏
- 记CentOS7一个百万PV商城的测试
- 怎么使用代理IP上网 如何设置代理服务器
- 有小数点的补码怎么算_小数和分数的原码补码