文章目录
一、QVariant介绍
QVariant 是 Qt 提供的一个通用数据类型,它可以存储多种类型的数据,包括基本类型(如 int、double、QString)、复杂类型(如 QByteArray、QDateTime)、以及自定义类型。
二、QVariant 的基本使用
QVariant 的创建
可以直接通过构造函数存储不同类型的数据:
#include <QApplication>
#include <QVariant>
#include <QString>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QVariant v1(42); // 存储 int
QVariant v2(3.14); // 存储 double
QVariant v3(QString("Hello")); // 存储 QString
QVariant v4(QByteArray("data")); // 存储 QByteArray
qDebug() << v1.toInt(); // 42
qDebug() << v2.toDouble(); // 3.14
qDebug() << v3.toString(); // "Hello"
qDebug() << v4.toByteArray(); // "data"
return a.exec();
}
输出结果:

QMap与QVariant的结合使用:
include <QApplication>
#include <QVariant>
#include <QDebug>
#include <QMap>
#include <QString>
#include <QColor>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMap<QString, QVariant> qMap;
qMap["int"] = 200; // 整型
qMap["double"] = 99.99; // 浮点型
qMap["string"] = "Good"; // 字符串
qMap["color"] = QColor(255, 255, 0);
// 输出:转换函数来处理
qDebug() << qMap["int"] << "," << qMap["int"].toInt();
qDebug() << qMap["double"] << "," << qMap["double"].toDouble();
qDebug() << qMap["string"] << "," <

最低0.47元/天 解锁文章
1242

被折叠的 条评论
为什么被折叠?



