【发布时间】: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 << "my text" << std::endl,尤其是endl?想要确保您刷新了文本(注意:\n不会自动刷新)。因为如果你这样做了,并且它仍然在你关闭程序后才打印,那么要么只执行消息代码(就像在析构函数中一样),要么是非常非常错误的事情。 -
另一个想法:当您在创建者中执行时,底部有几个选项卡。可能是您只是在错误的选项卡中,例如编译消息选项卡,并且当您关闭程序时此选项卡已关闭,将活动选项卡切换到实际输出。
标签: c++ qt qt-creator manjaro