【发布时间】:2013-06-27 06:00:48
【问题描述】:
在我的 QT 应用程序中,如果我从终端运行应用程序,我希望在终端中打印一些实时信息。
当我使用 printf("print this") 时(无论是在 main 中还是在绘制事件期间),在我关闭 gui 之前它不会打印。
为什么会这样,我怎样才能让它实时打印信息? (我用的是linux)
谢谢!
【问题讨论】:
-
你试过
qDebug()<< "some text";吗?
在我的 QT 应用程序中,如果我从终端运行应用程序,我希望在终端中打印一些实时信息。
当我使用 printf("print this") 时(无论是在 main 中还是在绘制事件期间),在我关闭 gui 之前它不会打印。
为什么会这样,我怎样才能让它实时打印信息? (我用的是linux)
谢谢!
【问题讨论】:
qDebug()<< "some text";吗?
要写入标准输出,您应该将此CONFIG += console 添加到您的项目文件配置中,并根据自己的喜好使用printf 中的cout。 qDebug 默认打印为 stderr。查看此主题以获取更多信息 - How to print to console when using Qt
【讨论】:
CONFIG += console,否则它不会显示,除了 qDebug,因为我猜它发送到 stderr
Qt 不干扰 printf 输出。 (在 Windows qmake(不是 Qt)上可以,但这不适用于 Linux)。但是,考虑到 stdout 的缓冲行为导致 printf("print this") 在缓冲区被刷新之前不会被打印。尝试例如fflush(stdout) 或简单地附加一个换行符:printf("print this\n") 以刷新缓冲区。但这与 Qt 完全无关。
【讨论】:
您可能还想尝试将CONFIG -= app_bundle 添加到您的.pro 文件中。
【讨论】: