D:\armtest\serial\mainwindow.cpp:106: error: no matching function for call to 'QString::number(QString&, char, int)' QString tempStr = QString::number(temp, 'f', 1); // 灏嗘暟瀛楄浆鎹负瀛楃涓诧紝淇濈暀涓€浣嶅皬鏁 ^
时间: 2024-02-15 13:09:57 浏览: 137
这是一个编译错误,错误信息显示在第106行,错误原因是`QString::number()`函数的参数列表不匹配。`QString::number()`函数需要一个数值类型的参数,但是你传递了一个`QString`类型的参数。你需要将这个参数转换为数值类型,然后再传递给`QString::number()`函数。
可以尝试使用`QString::toDouble()`函数将`QString`类型的参数转换为`double`类型,然后再将转换后的`double`类型参数传递给`QString::number()`函数。例如:
```
double tempDouble = tempStr.toDouble();
QString tempStr = QString::number(tempDouble, 'f', 1);
```
相关问题
D:\armtest\serial\mainwindow.cpp:104: error: no matching function for call to 'QString::number(QString&)' QString displayString = QString::number(temp) + "掳C"; ^
这是一个编译错误,错误信息显示在第104行,错误原因是`QString::number()`函数的参数列表不匹配。`QString::number()`函数需要一个数值类型的参数,但是你传递了一个`QString`类型的参数。你需要将这个参数转换为数值类型,然后再传递给`QString::number()`函数。
可以尝试使用`QString::toDouble()`函数将`QString`类型的参数转换为`double`类型,然后再将转换后的`double`类型参数传递给`QString::number()`函数。例如:
```
double tempDouble = tempStr.toDouble();
QString displayString = QString::number(tempDouble) + "°C";
```
或者,你可以直接使用`QString::fromUtf8()`函数将`QString`类型的字符串转换为`const char*`类型的字符串,并使用`std::string`库中的`std::stod()`函数将其转换为`double`类型。例如:
```
double tempDouble = std::stod(tempStr.toStdString());
QString displayString = QString::number(tempDouble) + "°C";
```
在这两种方法中,我们都将浮点数值转换为`double`类型,然后使用`QString::number()`函数将其转换为字符串,并在字符串的末尾加上单位`°C`。
D:\armtest\serial\mainwindow.cpp:107: error: redeclaration of 'QString str' QString str = QString::number(tempDouble, 'f', 1); ^
这是另一个编译错误,错误信息显示在第107行,错误原因是变量`str`已经被定义过了,不能重复定义。你需要将第107行的定义改为赋值操作,或者将变量名改为一个新的名字。
如果你想保留变量名`str`,可以将第107行的定义改为赋值操作。例如:
```
str = QString::number(tempDouble, 'f', 1);
```
如果你想使用一个新的变量名,可以将变量名改为一个新的名字。例如:
```
QString strNew = QString::number(tempDouble, 'f', 1);
```
阅读全文