no matching function for call to 'QStringList::filter(QCharRef)'
时间: 2023-09-22 14:07:27 浏览: 91
这个错误是因为`QStringList::filter()`函数的参数应该是一个`QChar`类型,而你传递了一个`QCharRef`类型的参数。
你需要将参数改为`QChar`类型,或者使用`QChar`类型的变量来代替`QCharRef`类型的参数。例如:
```cpp
QChar ch = 'a';
QStringList list = {"apple", "banana", "orange"};
QStringList filteredList = list.filter(ch);
```
相关问题
no matching function for call to QString::arg()’
这个错误通常发生在使用QString类中的arg()函数时,传入的参数类型与函数所需的参数类型不匹配。请确保传入的参数类型与函数所需的参数类型一致。
例如,如果你想使用arg()函数将一个整数类型的变量转换为QString类型,可以这样做:
```
int num = 10;
QString str = "The number is: %1";
str = str.arg(num);
```
如果你传入的参数类型不是整数类型,那么就会出现上述错误。你可以检查一下传入的参数类型是否正确,或者提供更多的代码信息,以便我更好地帮助你解决这个问题。
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`。
阅读全文