为什么在Qt C++关闭主窗口后打印消息

Why messages printed after closing main window in Qt C++?

本文关键字:窗口 打印 消息 Qt C++ 为什么      更新时间:2023-10-16

使用此代码

#include "mainwindow.h"
#include <QApplication>
#include <iostream>
#include <QDir>
#include <QTextStream>
int main(int argc, char *argv[]){
    QApplication a(argc, argv);
    QTextStream out(stdout);
    out << QDir::currentPath();
    std::cout << "Why is that?";
    MainWindow mainWindow;
    mainWindow.show();
    return a.exec();
}

两条消息都是在关闭我的应用程序主窗口后打印的,为什么会这样?我尝试调试,调试器认为他完成了这一行,但我没有看到任何消息。

extern std::ostream cout;是缓冲的,因此它可以选择何时将其缓冲区刷新到stdout。在您的情况下,它会在您的程序终止时执行此操作。

您可以使用 std::flush 告诉std::ostream刷新,如下所示:

std::cout << "Why is that?" << std::flush;