【问题标题】:QT qDebug() does not print anything in IDE consoleQT qDebug() 不在 IDE 控制台中打印任何内容
【发布时间】:2026-02-13 15:50:01
【问题描述】:

我需要 qDebug()、qInfo()、qWarning()、qCritical 或 qFatal() 将信息打印到 QTCreator 控制台。现在没有什么是行不通的。我从存储库安装 QTCreator。

Editing the qtlogging.ini 没有改变任何东西。我添加了所有可能的标签。 pro 文件。

Qt 5.15.2

Linux 用户 5.13.15-1-MANJARO #1 SMP PREEMPT x86_64 GNU/Linux

*.pro 文件:

QT       += core gui sql

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11
CONFIG += debug
CONFIG += console

*.h 文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include <QComboBox>
#include <QString>
#include <QtSql>

...

*.cpp 文件:

#include "mainwindow.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    qDebug() << "Check";
    ui->setupUi(this);
    load();
}
...

【问题讨论】:

  • 你确定你的主窗口的构造函数真的被调用了吗?您是否尝试在实际的main 中调用qDebug()?如果您在qDebug() 之后添加一些cout,那行得通吗?还有cerr?
  • @Azimuth,我在一个函数中尝试了 cout 和 qDebug。 cout 仅在程序关闭后打印所有信息,而 qDebug() 不打印任何内容
  • 如果与 qtCreator 设置相关,请在 main.cpp 中尝试,在 main.cpp 中您应该有这个问题。如果不是,您应该添加所有您有错误的程序。
  • @reodium 问题,你是不是把它称为std::cout &lt;&lt; "my text" &lt;&lt; std::endl,尤其是endl?想要确保您刷新了文本(注意:\n 不会自动刷新)。因为如果你这样做了,并且它仍然在你关闭程序后才打印,那么要么只执行消息代码(就像在析构函数中一样),要么是非常非常错误的事情。
  • 另一个想法:当您在创建者中执行时,底部有几个选项卡。可能是您只是在错误的选项卡中,例如编译消息选项卡,并且当您关闭程序时此选项卡已关闭,将活动选项卡切换到实际输出。

标签: c++ qt qt-creator manjaro


【解决方案1】:

发生这种情况是因为您设置了 CONFIG += console 并且您可能没有取消选中此选项:

取消选中在终端中运行。

【讨论】:

  • 我删除了CONFIG += console 并且未选中复选框。为了检查,我打开了这个选项,现在当程序启动时,会出现一个控制台,其中 qDebug() 打印,但这很不方便,在 IDE 中仍然不起作用
  • 这很奇怪。尝试 std::cout 而不是 qDebug 并检查它是否再次发生。
  • 不要删除您在 .pro 中写入的内容,只需取消选中该复选框并重试即可。