qDebug()调试工具
本文介绍了Qt调试工具qDebug()的使用方法。qDebug()是Qt提供的调试输出工具,比std::cout更便捷,能自动处理Qt类型、换行,并输出到VS调试窗口。文章详细讲解了qDebug的基本用法、变量输出、多值输出、Qt类型支持、中文输出等功能,还介绍了不同日志等级(qDebug/qInfo/qWarning等)的使用场景。此外,文章说明了qDebug在Debug/Release模式下的
🚀1. qDebug 是什么?
qDebug() 是 Qt 提供的 调试输出工具,作用和 C++ 的 std::cout 类似,但:
- 用法更简单
- 自动处理 Qt 的类型(QString、QVector 等)
- 自动换行
- 自动输出到 VS 的“调试输出窗口”
- 能在发布版本关闭
属于 Qt 的日志系统:
qDebug()
qWarning()
qCritical()
qFatal()
qInfo() (从 Qt 5.5 起)
🚀2. qDebug 基本用法
qDebug() << "Hello Qt!";
输出(在 VS 的 Output 窗口):
Hello Qt!
🚀3. 输出变量
int num = 10;
qDebug() << "num =" << num;
🚀4. 输出多个值
qDebug() << "x:" << x << "y:" << y;
如果 x = 5, y = 9:
x: 5 y: 9
🚀5. 输出 QString、QVector、QList、QPoint 等 Qt 类型(超方便)
QString name = "Tom";
qDebug() << name;
QPoint p(10, 20);
qDebug() << p;
输出:
"Tom"
QPoint(10,20)
这些 std::cout 都没法自动做到。
🚀6. 输出中文
qDebug() << "中文输出成功";
Qt 完全支持中文,不乱码。
(注意 VS 需要调试窗口编码支持 UTF-8,但一般无问题)
🚀7. 常见日志等级
|
函数 |
用途 |
|
qDebug() |
普通调试输出 |
|
qInfo() |
一般信息(推荐替代 qDebug) |
|
qWarning() |
警告 |
|
qCritical() |
严重错误 |
|
qFatal() |
致命错误(程序会直接退出) |
示例:
qWarning() << "这是一个警告";
输出:
Warning: 这是一个警告
🚀8. qDebug 输出在哪里?
在 Visual Studio:
View → Output → 选择 "Debug"
必须“调试运行”(F5)才会看到。
🚀9. 在 Release(发布版本)关闭 qDebug(重要)
Qt 自动在 release 版本禁用 debug 输出,你不需要做任何事情。
也就是说:
- Debug 版本:qDebug 会输出
- Release 版本:qDebug 不会输出
🚀10. 自定义输出格式(进阶)
你可以让 qDebug 输出自定义格式:
qDebug().noquote() << "不带引号的字符串";
qDebug().nospace() << "a=" << 10 << "b=" << 20;
输出:
不带引号的字符串
a=10b=20
🚀11. 把 qDebug 输出到文件(日志系统)
高级项目经常用:
void myMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
QFile file("log.txt");
file.open(QIODevice::Append);
QTextStream out(&file);
out << msg << "\n";
}
int main(int argc, char *argv[])
{
qInstallMessageHandler(myMessageHandler);
QApplication app(argc, argv);
qDebug() << "应用启动"; // 会写进 log.txt
...
}
🚀12. 和 std::cout 对比
|
项目 |
qDebug |
std::cout |
|
显示位置 |
调试窗口 |
控制台 |
|
支持 Qt 类型 |
自动支持 |
不支持 |
|
自动换行 |
✔ |
✘ |
|
中文支持 |
✔ |
不一定 |
|
格式化灵活 |
一般 |
强 |
qt 项目强烈推荐使用 qDebug()。
更多推荐


所有评论(0)