qt打印到终端

时间:2013-06-29 16:00:53

标签: linux qt stdout

在我的QT应用程序中,如果我从终端运行应用程序,我希望在终端中打印一些实时信息。

当我使用printf(“打印此”)时(在主要事件中或在绘画事件期间),在我关闭gui之前它不会打印。

为什么会这样,我怎样才能实时打印信息? (我正在使用linux)

谢谢!

4 个答案:

答案 0 :(得分:2)

要写入stdout,您应该将此CONFIG += console添加到项目文件配置中,并根据自己的喜好使用cout printfqDebug默认打印到stderr。查看此主题以获取更多信息 - How to print to console when using Qt

答案 1 :(得分:1)

您可以使用qDebug() << ...qWarning() << ...等。不要忘记包含<QDebug>

文档:QDebug

答案 2 :(得分:1)

Qt不会干扰printf输出。 (在Windows上qmake(不是Qt)可以,但这不适用于Linux)。但是,请考虑stdout的缓冲行为导致printf("print this")在刷新缓冲区之前不会被打印。尝试用例如fflush(stdout)或只是添加换行符printf("print this\n")以刷新缓冲区。尽管如此,这与Qt无关。

答案 3 :(得分:0)

您可能还想尝试将CONFIG -= app_bundle添加到.pro文件中。