Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux qt打印到终端_Linux_Qt_Stdout - Fatal编程技术网

Linux qt打印到终端

Linux qt打印到终端,linux,qt,stdout,Linux,Qt,Stdout,在我的QT应用程序中,如果我从终端运行应用程序,我希望在终端中打印一些实时信息 当我使用printf(“print this”)(无论是在main中还是在paint事件期间),它都不会打印,直到我关闭gui 为什么会这样?我如何让它实时打印信息?(我正在使用linux) 谢谢 您可以使用qDebug()您可以使用qDebug()写入标准输出,您应该将此CONFIG+=console添加到项目文件配置中,并根据您的喜好使用printf的coutqDebug默认打印到stderr。查看本主题了解更多

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

当我使用printf(“print this”)(无论是在main中还是在paint事件期间),它都不会打印,直到我关闭gui

为什么会这样?我如何让它实时打印信息?(我正在使用linux)


谢谢

您可以使用
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未禁用)