QT QVariant类数据类型使用
1、 QVariant 类用于封装数据成员的类型及取值等信息,该类类似于 C++ 共用体 union ,一个QVariant 对象,一次只能保存一个单一类型的值。该类封装了 Qt 中常用的类型,对于 QVariant 不支持的类型 ( 比如用户自定义类型 ) ,则需要 使 用 Q_DECLARE_METATYPE( Type )宏进行注册。 2、QVariant 拥有常用类型的单形参构造函数,因此可把这些常用类型转换为 QVariant 类型,同时 QVariant 还重载了赋值运算符,因此可把常用类型的值直接赋给 QVariant 对象。注:由 C++语法可知,单形参构造函数可进行类型转换。 3、使用 QVariant 构造函数和赋值运算符。 注意: QVariant 没有 char 类型的构造函数,若使用 char 值会被转换为对应的 int 型。 QVariant v(1); // 调用 QVariant(int) 构造函数创建一个 QVariant 类型的对象,并把数值 1 保存到 v 中。 v=2; // 调用 QVariant 的赋值运算符,把值 2 保存在 v 之中,因为 QVariant 是类似于共用体的类, 因此同一时间只会保存一个值。
1.概述 QVariant类似于java中Object。 QVariant可以存储各种数据类型,QVariant比C/C++的union强大很多,QVariant内置支持所有QMetaType::Type里声明的类型。简单的说QVariant可以存储任意数据类型,表现的类似弱语言,如JS中的var。
2.构造函数 QVariant(bool b);
QVariant(double d);
QVariant(const QString &string);
QVariant(const QList &list);
QVariant(const QMap &map);
QVariant(const QHash &hash);
QVariant(const QVariant &other);
//还有很多
3.通过setValue()方法设置数据 QVariant v;
v.setValue(5);
4.静态方法设置数据-fromValue QVariant v = QVariant::fromValue(xxx); 5.取值 qreal toReal(bool *ok = Q_NULLPTR) const; QByteArray toByteArray() const; 6.使用基本类型数据 //保存数据
QVariant var=12;
//获取数据
int data=var.toInt();
7.使用自定义类型数据 MyClass myClass;
//保存数据
QVariant data=QVariant::fromValue(myClass);
//获取数据
MyClass myClass=data.value();
int id=myClass.id;
QString name=myClass.name;
8.使用指针 //保存数据
QVariant var=QVariant::fromValue((void*)event);
//获取数据
QPaintEvent* e=(QPaintEvent*)var.value();
#include "mainwindow7_13.h"
#include "ui_mainwindow7_13.h"
#include
MainWindow7_13::MainWindow7_13(QWidget *parent)
: QWidget(parent)
, ui(new Ui::MainWindow7_13)
{
ui->setupUi(this);
QVariant v1(15);
qDebug()
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?