qInfo 报错error C2678: 二进制“<<”: 没有找到接受“QDebug”类型的左操作数的运算符(或没有可接受的转换)
时间: 2024-09-28 21:12:46 浏览: 26
当遇到`error C2678`这样的报错,通常意味着在使用Qt的流操作符`<<`时,试图将一个无法直接与`qInfo`一起使用的类型传递给它。这个错误通常发生在尝试将`QDebug`对象与其他非字符串类型一起输出,如基本数据类型、自定义对象等,而`qInfo`期望的是字符串或者其他已知可以流化的对象。
例如,下面的代码就会引发这个错误:
```cpp
qInfo() << debugObject; // error since 'QDebug' is not a string or streamable type
```
你应该确保你在调用`qInfo`时,传入的是支持`<<`操作的类型,如`QString`, `int`, 或者自定义类的对象如果实现了`toString()`等方法使其能够转换为字符串。
修复这个问题的方法是将`debugObject`转换成字符串或其他流化形式:
```cpp
qInfo() << debugObject.toString(); // 如果debugObject有toString()方法
qInfo() << QString::fromStdString(debugObject.message()); // 或者其他合适的方式
```
相关问题
qDebug() << "Read requests:" << storage.readRequests(); qDebug() << "Write requests:" << storage.writeRequests(); qDebug() << "Read bytes:" << storage.bytesRead() / (1024 * 1024) << "MB"; qDebug() << "Write bytes:" << storage.bytesWritten() / (1024 * 1024) << "MB";这些代码会报错
如果你使用的是Qt 5.14.2或更高版本,那么可以使用下面的代码来获取磁盘读写请求的百分比:
```cpp
#include <QStorageInfo>
#include <QDebug>
int main()
{
QStorageInfo storage("/");
if (storage.isValid()) {
qDebug() << "Drive:" << storage.rootPath();
qDebug() << "Type:" << storage.fileSystemType();
qDebug() << "Total space:" << storage.bytesTotal() / (1024 * 1024) << "MB";
qDebug() << "Free space:" << storage.bytesFree() / (1024 * 1024) << "MB";
qDebug() << "Available space:" << storage.bytesAvailable() / (1024 * 1024) << "MB";
qDebug() << "Read requests:" << storage.readRequestsPerSecond();
qDebug() << "Write requests:" << storage.writeRequestsPerSecond();
qDebug() << "Read bytes:" << storage.bytesReadPerSecond() / (1024 * 1024) << "MB/s";
qDebug() << "Write bytes:" << storage.bytesWrittenPerSecond() / (1024 * 1024) << "MB/s";
}
}
```
在这个示例中,我们提供了一个路径来创建QStorageInfo对象。然后,我们使用isValid()方法来检查该设备是否有效。如果设备有效,我们使用其他方法来获取磁盘的信息,包括读写请求的速率和字节数。注意,这里使用了每秒读写请求数和每秒读写字节数。
qDebug()<< "content:" <<content;中的 qDebug
qDebug 是Qt框架提供的一个输出调试信息的函数,它可以在控制台输出内容,类似于C语言中的printf函数。qDebug函数可以输出各种类型的数据,如字符串、整数、浮点数等,方便程序员在开发过程中进行调试和观察变量的值。在这个语句中,qDebug输出了一段字符串 "content:" 和一个变量 content 的值。
阅读全文