在Windows上使用Qt Creator时,
qDebug()
语句无法正常工作,并在输出窗口中出现以下消息:
如何解决?无法检索调试输出。
qDebug()
语句无法正常工作,并在输出窗口中出现以下消息:
如何解决?无法检索调试输出。
如果有多个Qt Creator实例处于活动状态,可能会出现此问题。要解决此问题,请关闭所有其他Qt Creator实例,然后它就应该可以正常工作。
对于我来说,我通过关闭使用其他qt creator构建的正在运行的应用程序来解决了这个问题。因此,不必关闭其他qt creator。
我有两个QtCreator实例,但无法关闭其中一个。它们同时运行。
解决该问题的一种方法是使用qInstallMessageHandler
重定向应用程序输出消息。
#include "mainwindow.h"
#include <QApplication>
void redirectedOutput(QtMsgType, const QMessageLogContext &, const QString &);
QMutex debugOutMutex;
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
qInstallMessageHandler(redirectedOutput);
MainWindow w;
w.show();
return app.exec();
}
void redirectedOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
debugOutMutex.lock();
std::cout << QDateTime::currentDateTime().toString("hh.mm.ss.zzz ").toStdString() << msg.toStdString() << std::endl;
if (type == QtFatalMsg) {
abort();
}
debugOutMutex.unlock();
}
我也添加了一个 QMutex
。如果你的应用程序正在使用多个线程,调试输出可能会混合在一起。
对我来说,当我的应用程序有多个实例时,而不是Qt Creator的情况下,会出现此错误消息。