Qt QVariant常用用法及QVariant和QList互转

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

IT宅个人博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Qt QVariant常用用法及QVariant和QList互转.

前言

最近在搞树形间拖拽时发现 QMimeData 的重载函数 retrieveData 返回的是一个QVariant,但是我需要返回的是QList<QTreeWidgetItem>,这下可难到了。

然后仔细查看可以使用自定义类型,于是使用了一下,真的很棒。接下来看一下QVariant的常用用法。

QVariant 基本用法(QString 为例)

QVariant 转 QString 互转

    QString str = "https://itzhai.cn";
    QVariant var;
    var.setValue(str);

    QString varStr = var.toString();
    qDebug() << "varStr: " << varStr;

结果:
Alt

QVariant 和 QList互转

   QList<QString> list = {"chiyuba.com", "itzhai.cn"};
    QVariant var;
    var.setValue(list);

    QList<QString> varList = var.value<QList<QString> >();
    qDebug() << varList;

结果:
Alt

QVariant 和 QList互转(MyStruct 为自定义结构体)

// 定义结构体
typedef struct myCus {
     QList<QTreeWidgetItem *> lists;
     QList<int> list2;
} MyCus;

// 注册自定义类型
Q_DECLARE_METATYPE(MyCus);
  // 使用自定义类型
    MyCus my;
    my.list2 = {0, 1};
    QVariant var;
    var.setValue(my);
    MyCus m = var.value<MyCus>();
    qDebug() << m.list2;

结果:
Alt

总结

Variant用起来还是挺方便的,可以存储很多的类型。多看文档,多看文档,多看文档。

Qt QVariant常用用法QVariantQListQVariant互转 前言 最近在搞树形间拖拽时发现QMimeData的重载函数retrieveData返回的是一个QVariant,但是我需要返回的是QList<QTreeWidgetItem>,这下可难到了。 然后仔细查看可以使用自定义类型,于是使用了一下,真的很棒。接下来看一下QVariant常用用法QVariant基本用法(QString为例) QVariant转QString互转 QString str = "https://itzhai.cn"; QVariant va 阅读详情

相关推荐

Qt容器类及其遍历(Java风格STL风格迭代器)

1、Qt提供了一组通用的基于模板的容器类。Qt的容器类对比C++的标准准模板库中的容器类,更轻量、更安全、更容易使用;此外,Qt的容器类还在速度、内存消耗内联(inline)代码等方面进行了优化。2、存储在Qt容器类中的数据必须是可赋值的数据类型,即,这种数据类型必须提供一个默认的构造函数(不需参数的构造函数)、一个复制构造函数一个赋值操作运算符。3、这些数据类型包含通常使用的大多数数据类型,包

zyx_0604的博客 2360

QListQVariant互相转换

//QListQVariant QList&lt;int&gt; list1; list1 &lt;&lt; 11 &lt;&lt; 22 &lt;&lt; 33; QVariant v = QVariant::fromValue&lt;QList&lt;int&gt; &gt;(list1); //QVariantQList QList&lt;int&gt; list2 = v.value

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 1万+

Qt开发必备:QVariant与自定义结构体的高效互转技巧(附完整代码示例)

本文深入探讨了Qt开发中QVariant与自定义结构体的高效互转技巧,包括类型注册、基础转换、复杂场景应用及性能优化。通过完整代码示例,帮助开发者掌握QVariant在树形控件拖拽、数据序列化等实际场景中的灵活应用,提升Qt开发效率。

water的专栏 676

Qt3:List、QMap、QVariant等容器类

List、QMap、QVariant等容器类简单应用

weixin_48042856的博客 1419

Qt QVariant常用用法QVariantQList

文章目录[隐藏] 前言QVariant 基本用法(QString 为例)QVariant QList<int>互转QVariant QList<MyStruct>互转(MyStruct 为自定义结构体)总结 前言 最近在搞树形间拖拽时发现 QMimeData 的重载函数 retrieveData 返回的是一个QVariant,但是我需要返回的是QList&lt...

https://ligo100.cn 小何博客欢迎访问。 2848

QVariantList使用说明

QVariantList使用相关资料很少,在这里总结一下。 QVariantList等同于QList<QVariant>,按照这个使用解可以了。 1.使用基本类型对象: QVariantList listCity; //基本类型数据匹配QVariant变量。 listCity.append("test1"); listCity.append("test2"); 2.使用自定义类对象: StudentVo *s1=new StudentVo(this, 1,"BX1111", 10, "")

quietbxj的博客 1万+

Qt QVariant详细用法

一、简介 QVariant可以存储各种数据类型,QVariant行为类似于C/C++的union, 但在Qt中比union强大很多, QVariant内置支持所有QMetaType::Type里声明的类型如:int,QString,QFont,QColor等,甚至QList,QMap<QString, QVariant>等组成的任意复杂类型。简单的说QVariant可以存储任意数据类型,表现的类似弱语言,如JS中的var如,包括容器类型的值,如QStringlist。Qt的很多功能都是建立在QV

芒种、的博客 6138

QVariant QList结合应用

QVariant QList结合应用

xie__jin__cheng的博客 770

别再为数据类型发愁!QtQVariant的5种实战用法详解(含QList转换陷阱)

本文深入解析QtQVariant的5种实战用法,包括基础类型转换、容器类型处理、自定义类型支持等,特别揭示QList转换过程中的常见陷阱。通过详细代码示例最佳实践,帮助开发者高效处理数据类型转换问题,提升Qt开发效率。

weixin_29302047的博客 354

QTQVariant类的使用

详细说明 对于最常见的Qt数据类型,QVariant类的作用类似于联合。 因为C ++禁止联合包含具有非默认构造函数或析构函数的类型,所以大多数有趣的Qt类不能在联合中使用。如果没有QVariant,这对于QObject :: property()数据库工作等都是一个问题。 一个QVariant对象一次拥有单个type()的单个值。 (某些type()是多值的,例如字符串列表。)您可以找出哪种类型T(该变体可以保存),使用convert()将其转换为其他类型,并使用toT之一获取其值。 ()函数(例如to

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1806

Qt快速读取Excel,QVariant 转QList MyType

参考好多博客,天下博客一大抄,有人不会抄!导致没有得到结果。 故此,写文档用于记录两部分内容: 1、Qt读取Excel的两种方法:1.1、逐单元格读取(慢),1.2、整体范围读取(快) 2、Qt读取Excel之后,数据存储在QVariant var中,如何将 QVariant 中的数据,读进QList<QList<MyType> >,然后读进QList<MyT...

CSDN的博客 2243

Qt_QVariant

QVariantQt 框架中一个非常实用的类,它类似于 C++ 的 union,但功能更强大,可以安全地存储几乎所有常见的 Qt 数据类型 C++ 基本类型。

前端开发工程师 315

Qt——常用数据类型

Qt——常用数据类型

m0_73443478的博客 5081

Qlist+QMap+QVariant使用

【代码】Qlist+QMap+QVariant使用。

yuxing55555的博客 2431

QList<QString>转QVariant

QT+Sqlite中addBindValue(),添加QVariant格式,将QList转为QVariant方法:

qq_45059758的博客 397

Qt STL容器学习大全QList,QMap,QVariant

Qt STL容器学习大全QList,QMap,QVariant QList容器 QMap容器 QVariant容器

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 387

QT(五)常用

中的容器类,相比较于C++的容器类,Qt的容器类更轻巧、更安全、更加的易于使用。Qt中对C++的类重写时,充分考虑到了C++程序员的编程习惯,因此QString几乎支持所有string的API,除此之外也会增加一些额外的函数。QString是Qt的字符串类,与C++的string相比,不再使用ASCII编码,QString使用的是Unicode编码。Qt是一个跨平台的开发框架,所以必须保证各个平台的数据类型的长度保持一致,因此Qt为常见的基本类型定义了新的类型符号。可以使用时间戳作为随机数的种子。

m0_72024501的博客 1441

Qt::QList 转为 QVariant

用到的主要函数QVariant(const QList<QVariant> &val)void QVariant::setValue(const T &value)QVariant QVariant::fromValue(const T &value)示例代码 QList<QString> strList; strList.push_back("hello"); strList.p

云淡风轻 7012

QVariant、QMap、QList用法

QVariant、QMap、QList用法。 1. 使用QVariant 打印数字、打印字符串 2. 使用QMap,打印map项 VS 打印转换类型后的值 3. 使用QStringList ,并声明变量迭代打印该字符串列表

castlooo的专栏 485
下一篇: Q_DECLARE_OPERATORS_FOR_FLAGS()
进军蚁
博客等级 码龄7年 2粉丝 0原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值