在我的QT应用程序中,如果我从终端运行应用程序,我希望在终端中打印一些实时信息。
当我使用printf(“打印此”)时(在主要事件中或在绘画事件期间),在我关闭gui之前它不会打印。
为什么会这样,我怎样才能实时打印信息? (我正在使用linux)
谢谢!
答案 0 :(得分:2)
要写入stdout,您应该将此CONFIG += console
添加到项目文件配置中,并根据自己的喜好使用cout
printf
。 qDebug
默认打印到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
文件中。