Linux qt打印到终端
在我的QT应用程序中,如果我从终端运行应用程序,我希望在终端中打印一些实时信息 当我使用printf(“print this”)(无论是在main中还是在paint事件期间),它都不会打印,直到我关闭gui 为什么会这样?我如何让它实时打印信息?(我正在使用linux)Linux qt打印到终端,linux,qt,stdout,Linux,Qt,Stdout,在我的QT应用程序中,如果我从终端运行应用程序,我希望在终端中打印一些实时信息 当我使用printf(“print this”)(无论是在main中还是在paint事件期间),它都不会打印,直到我关闭gui 为什么会这样?我如何让它实时打印信息?(我正在使用linux) 谢谢 您可以使用qDebug()您可以使用qDebug()写入标准输出,您应该将此CONFIG+=console添加到项目文件配置中,并根据您的喜好使用printf的coutqDebug默认打印到stderr。查看本主题了解更多
谢谢 您可以使用
qDebug()您可以使用qDebug()写入标准输出,您应该将此CONFIG+=console
添加到项目文件配置中,并根据您的喜好使用printf
的cout
qDebug
默认打印到stderr
。查看本主题了解更多信息-要写入标准输出,您应该将此CONFIG+=console
添加到项目文件CONFIG中,并根据自己的喜好使用printf的cout
qDebug
默认打印到stderr
。查看本主题了解更多信息-Qt不会干扰printf输出。(在Windows qmake上(不是Qt),但这不适用于Linux)。但是,考虑到STDUT的缓冲行为导致<>代码> PrtTf(“打印此”)未被打印,直到缓冲区被刷新。尝试使用例如fflush(stdout)
或简单地添加一个换行符:printf(“打印此\n”)
以刷新缓冲区。但这与Qt无关。Qt不会干扰printf输出。(在Windows qmake上(不是Qt),但这不适用于Linux)。但是,考虑到STDUT的缓冲行为导致<>代码> PrtTf(“打印此”)未被打印,直到缓冲区被刷新。尝试使用例如fflush(stdout)
或简单地添加一个换行符:printf(“打印此\n”)
以刷新缓冲区。这与Qt完全无关。你可能还想尝试将CONFIG-=app\u bundle
添加到你的.pro
文件中。你可能还想尝试将CONFIG-=app\u bundle
添加到你的.pro
文件中。你是否尝试过qDebug()可能与你尝试的qDebug()重复可能是重复的谢谢,但这只是在调试版本中吗?我猜qDebug()会打印到stderror,有没有办法打印到stdout呢?你试过了吗?谢谢,但这只是在调试版本中吗?我猜qDebug()会打印到stderror,有没有办法打印到stdout呢?你试过了吗?我很确定默认的消息处理程序会将输出发送到stdout。我一直这样使用它。@Jacobs Robbins是的,但除非添加了CONFIG+=console
,否则它将不会显示,qDebug除外,因为它发送到stderr,我猜只有Windows才需要CONFIG+=console。在Unix上,printf、qDebug等总是打印到控制台(如果有的话,即qDebug没有被禁用),我很确定默认的消息处理程序会将输出发送到stdout。我一直这样使用它。@Jacobs Robbins是的,但除非添加了CONFIG+=console
,否则它将不会显示,qDebug除外,因为它发送到stderr,我猜只有Windows才需要CONFIG+=console。在Unix上,printf、qDebug等始终打印到控制台(如果有,即qDebug未禁用)