在Qt中,常见的数据格式包括:
- QVariant:可以存储多种数据类型,包括整型、浮点型、字符串、布尔值、日期等。
- QString:用于存储和处理文本字符串。
- QByteArray:用于处理字节数组,常用于二进制数据。
- QList:可存储相同类型的元素,类似于数组。
- QMap:存储键值对,提供高效的查找。
- QHash:类似于QMap,但基于哈希表,提供更快的查找速度。
- QVector:动态数组,用于存储相同类型的元素。
- QDate 、QTime 、QDateTime:分别用于处理日期、时间和日期时间。
- QJsonDocument 、QJsonObject 、QJsonArray:用于处理JSON格式的数据。
在Qt中,数据类型转换通常可以通过以下方式实现:
-
QVariant :使用
QVariant::value<T>()
方法转换为指定类型。例如:cpp
复制代码
QVariant var = 42; int value = var.value<int>();
-
QString和QByteArray :可以使用
QString::toUtf8()
和QByteArray::toStdString()
等方法进行转换。例如:cpp
复制代码
QString str = "Hello"; QByteArray byteArray = str.toUtf8();
-
QList和QVector :可以使用构造函数或
toVector()
和toList()
方法进行转换。例如:cpp
复制代码
QList<int> list = {1, 2, 3}; QVector<int> vector = QVector<int>::fromList(list);
-
QDate、QTime、QDateTime :可以通过
toString()
和fromString()
方法进行格式化转换。例如:cpp
复制代码
QDate date = QDate::fromString("2024-10-29", "yyyy-MM-dd"); QString dateString = date.toString("dd/MM/yyyy");
-
QJsonDocument 、QJsonObject 、QJsonArray:可以通过序列化和反序列化实现。例如:
cpp
复制代码
QJsonDocument doc = QJsonDocument::fromJson(byteArray); QJsonObject jsonObject = doc.object();