在 Qt 中,将 QString 转换为 int 可以通过几种方法来实现。以下是一些常用的方法:
-
使用
toInt()成员函数:QString类提供了一个toInt()成员函数,它可以将字符串转换为整数。如果转换失败,该函数会返回一个默认值(通常为 0),并且可以通过一个布尔指针参数来检查转换是否成功。QString str = "123";bool ok;int number = str.toInt(&ok);if (ok) {// 转换成功,可以使用 number 变量} else {// 转换失败,处理错误情况} -
使用
QLocale类:
如果你的应用程序需要考虑本地化,并且需要处理不同地区的数字格式,可以使用QLocale类来进行转换。QString str = "1,234"; // 假设这是一个使用逗号作为千位分隔符的本地化数字字符串QLocale locale(QLocale::German); // 假设我们按照德国的数字格式进行解析bool ok;int number = locale.toInt(str, &ok);if (ok) {// 转换成功} else {// 转换失败} -
使用标准库函数:
虽然这不是 Qt 特有的方法,但你也可以使用 C++ 标准库中的函数,如std::stoi(C++11 及更高版本),来将字符串转换为整数。但请注意,这种方法不会考虑本地化设置。#include <string>QString str = "123";try {int number = std::stoi(str.toStdString());// 转换成功,可以使用 number 变量} catch (const std::invalid_argument&) {// 转换失败,处理无效参数异常} catch (const std::out_of_range&) {// 转换失败,处理超出范围异常}
在大多数情况下,使用 QString::toInt() 方法是最简单和最直接的方式。如果你需要处理本地化数字格式,那么 QLocale 是一个更好的选择。而使用标准库函数则提供了更多的错误处理选项,但可能不那么方便。
1533

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



