关于qt的qdebug为什么不输出的问题

头文件也有,整个程序都可以运行,但是就是不输出打印信息,是不是我软件设置的问题?

img

img

在输出的那一行,下一个断点调试下,看看有没有执行到。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7762597
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:qt中使用日志系统,自定义日志彩色输出,qt日志写入文件,自定义qt日志格式,同时提供Qt日志重定向功能(将qDebug信息输出到界面控件)
  • 除此之外, 这篇博客: 金山训练营第五周——课堂内容知识整理拓展-上(04.23)中的 qDebug()函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 头文件 —— #include<QDebug>
    • 函数原型 —— qDebug(const char*message,...)
    • 功能 —— 向终端上输出message字符串对应的消息,输出完毕,自动换行。和C++中的cout一样
    #include "widget.h"
    
    #include <QApplication>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        //Widget w;
        //w.show();
    
        qDebug()<<"hello WPS!";
    
        return a.exec();
    }
    

    在这里插入图片描述

    主要作用:调试程序,定位代码中是否有错误或者代码片段中没有正常执行的地方,例如之后关于SQL的查询语句是否正确的被运行,可以通过Qt执行SQL语句前后使用qDebug()来确定

  • 以下回答来自chatgpt:

    针对该问题,可能的解决方案有以下几种:

    1. 检查代码中是否有使用qDebug()输出信息,确保该函数已经被调用。如果没有调用该函数,程序是不会输出相关信息的。

    2. 检查终端是否被正确的配置了,确保终端已经被打开并能够正常输出信息。

    3. 检查程序是否已经被正确的编译和链接,确保程序能够正常运行。在执行程序之前,最好先对程序进行编译和链接操作。

    4. 如果以上三种方法都无法解决问题,可以考虑使用Qt的日志库来输出调试信息,例如QtMessageLogger类。这种方法可以更加灵活地控制输出信息的级别和格式,方便问题的定位和解决。

    以下是一种可能的代码实现:

    #include <QDebug>
    #include <QLoggingCategory>
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        QLoggingCategory debugCategory("myapp.debug");
        debugCategory.setDefaultCategory(&debugCategory);
        debugCategory.setEnabled(QtDebugMsg, true);
    
        qDebug() << "Hello, world!"; // 使用qDebug()输出信息
    
        return a.exec();
    }
    

    这段代码中,我们在程序的入口函数中使用了QLoggingCategory类来设置日志的输出级别和标签,并在使用qDebug()输出信息之前将输出信息的类别设置为了"myapp.debug"。这样,我们就可以通过日志系统来输出调试信息,从而更好的定位和解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^