Qt 中将std::cout 重定向到 qDebug

发布时间 2023-05-27 09:37:47作者: 愿得入睡

#include <QtCore>
#include <iostream>

void customMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg)
{
  QByteArray localMsg = msg.toLocal8Bit();
  switch (type) {
  case QtDebugMsg:
     std::cout << localMsg.constData() << std::endl;
    break;
  // 添加其他消息类型的处理逻辑,如警告、错误等
  default:
    break;
  }
}

int main(int argc, char *argv[])
{
  // 安装自定义的消息处理器
  qInstallMessageHandler(customMessageHandler);

  QApplication app(argc, argv);

  // 使用std::cout输出,会被重定向到qDebug
  std::cout << "Hello, Qt!" << std::endl;

  return app.exec();
}