您当前的位置: 首页 >  ar

txwtech

暂无认证

  • 2浏览

    0关注

    813博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

QT QVariant类数据类型使用

txwtech 发布时间:2022-09-21 22:42:01 ,浏览量:2

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()            
关注
打赏
1665060526
查看更多评论
0.0499s