QtCreator:将字符串打印到终端的最佳方法是什么?

时间:2018-02-11 14:38:17

标签: c++ qt c++11 qt-creator terminator

我正在学习在lubuntu 17.10上使用Qtcreator,并希望将一些输出打印到终端。我遇到了麻烦,所以将我的程序剥离到基本的 Hello World ,以便将单个字符串打印到终端。目前,我正在使用此代码:

#include <QCoreApplication>
#include <iostream>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    std::cout << "HELLO WORLD" << std::endl;
    return a.exec();
}

我的.pro文件包含这些看起来可能影响终端行为的行:

QT -= gui

CONFIG += c++11 console

我也有&#39;在终端&#39;在运行设置中检查。

这种构建没有问题。当我运行它时,终端弹出(我正在使用terminator),并且是空白的,闪烁的光标。要显示字符串,我必须按<Enter>。出现字符串,但程序没有结束。我没有得到&#34;按回车键关闭窗口&#34;在终端中键入指示程序已结束的消息,我必须手动关闭终端&#39;。此外,在“应用程序输出”窗口中,它显示:

/home/user/path_to_my_program crashed.

大概是因为我强行关闭终端。我真的想弄明白为什么它没有将字符串打印到终端并且干净利落地退出。

按ENTER后终端(事先空白):

enter image description here

1 个答案:

答案 0 :(得分:0)

这对于Qt控制台应用程序是正常的。它正在运行一个messageloop并完全在做应做的事情。 要将文本发送到控制台,可以使用std :: cout,qout或qDebug()。后者用于调试。更多信息可以在这里找到。它还包含您遇到的陷阱。 Qt console Application