2

我正在学习在 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

我还在运行设置中选中了“在终端中运行”。

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

/home/user/path_to_my_program crashed.

大概是因为我强制关闭终端。我真的很想弄清楚为什么它没有将字符串打印到终端并干净地退出。

我按 ENTER 后的终端(预先空白):

在此处输入图像描述

4

1 回答 1

0

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

于 2020-10-19T20:11:08.493 回答