问题
在 python 中,字典是一种可变容器模型,可存储任意类型对象。字典的值可以取任何数据类型,键必须是不可变的,如字符串,数字或元组,例如:
student_aa = {'name' : 'Dapang', 'age' : 18, 'course' : ('Chinese', 'Math', 'English'), 'family' : {'father' : 'ff', 'mother' : 'mm'}}
那么在 C++ Qt 中,我们可以实现 python 的字典功能吗?
****************************************** 我 是 一 条 善 于 思 考 的 躺 平 线 *********************************************************************************
概述
没错,这时就可以使用 QVariant。
Qt 文档介绍:The QVariant class acts like a union for the most common Qt data types. 意思是 QVariant 类的作用类似于最常见的 Qt 数据类型的联合。
QVariant 很方便,可以包含很多 Qt 的数据类型,如 QBrush、QByteArray、QColor、QCursor、 QFont、QImage、QPen、QPixmap、QPoint、QRect、QString、QStringList 等;也支持基本数据类型,如int、bool、double等;还可以支持自定义的数据类型。QVariant::Type 定义了 QVariant 支持的变量类型 。
示例
1. 基本数据类型、Qt 数据类型
对于这些数据类型,存入类型T,则使用 toT() 取出。例如存入 int 类型,则使用 toInt() 取出;存入QString 类型,则使用 toString() 取出。QVariant 对象的赋值可以用以下4种方法,我们用上面 student_aa 的4条信息分别举例:
// 1
QVariant var1