qt5 QStringList如何转为 数组 QVector<quint16>
时间: 2024-09-11 20:13:33 浏览: 101
QT,QVector 基本用法,遍历[实例讲解] - 小皮球的博客 - CSDN博客1
在Qt 5中,`QStringList` 是一个包含 `QString` 元素的列表,而 `QVector<T>` 是一个可以动态调整大小的连续内存数组。如果你想将 `QStringList` 转换为 `QVector<quint16>` 类型的数组,你首先需要明确转换的目标和意义。`QStringList` 中存储的是字符串,而 `QVector<quint16>` 存储的是16位无符号整数。这意味着你需要将字符串转换为整数,然后再放入 `QVector<quint16>` 中。
下面是一个简单的例子,说明如何进行这种转换:
```cpp
#include <QStringList>
#include <QVector>
#include <QDebug>
// ...
QStringList strList; // 假设这是你已经有了的QStringList
QVector<quint16> intVector;
// 遍历QStringList中的每一个QString
foreach (const QString &str, strList) {
bool ok = false; // 用于存储转换是否成功的标志
quint16 value = str.toUShort(&ok); // 尝试将字符串转换为16位无符号整数
// 如果转换成功,则添加到QVector中
if (ok) {
intVector.push_back(value);
} else {
qDebug() << "转换失败,字符串为:" << str;
}
}
// 此时 intVector 包含了转换后的quint16值
```
需要注意的是,`QString::toUShort()` 方法会尝试将字符串转换为无符号短整数(即16位整数)。如果字符串内容不能被转换为整数(例如,它包含非数字字符),则转换会失败,并且 `ok` 标志会被设置为 `false`。在实际的转换过程中,你可能需要处理这种情况,例如通过跳过那些不能转换的字符串。
阅读全文