QString 转 int 几种方式
时间: 2024-10-20 13:15:54 浏览: 15
`QString`是Qt库中的字符串类型,在需要将字符串转换为整数时,有几种常见的方法:
1. **qIntToString() 和 atoi()**:可以先使用`qIntToString()`函数将`QString`转换为`QString`格式的整数字符串,然后通过标准库函数`atoi()`将其转换为`int`。例如:
```cpp
int num = atoi(qObject->property("myString").toString().toStdString().c_str());
```
2. **toInt() 或 stoi()**:在Qt5之后,可以直接使用`toInt()`成员函数从`QString`转换到`int`,如果字符串无法转换会抛出异常。另外,如果你使用的是C++11及以上版本,也可以使用`stoi()`函数:
```cpp
int num = qObject->property("myString").toString().toInt();
// 或者 C++11+:
int num = std::stoi(qObject->property("myString").toString());
```
3. **Qvariant toValue() 和 castToInt()**:如果你处理的数据包含多种类型,并存储在`QVariant`中,可以先获取为`QVariant`再转换:
```cpp
QVariant variant = qObject->property("myString");
int num = variant.toInt();
```
`castToInt()`是另一种方式,但如果不确定`QString`是否能转换为`int`,这种方式可能会隐式失败。
请注意,上述转换可能遇到空字符串、非数字字符等情况而失败。在实际使用时,最好加上适当的错误检查和异常处理机制。
阅读全文