Qt输出是如何工作的

how the outputs in Qt works

本文关键字:工作 何工作 输出 Qt      更新时间:2023-10-16

我对此感到困惑:我使用Visual Studio 2013

当我为windows创建项目时:

当我使用qDebug()时,输出转到某些控制台输出。这是我可以用来输入的控制台吗?或者我需要Qt+=控制台的那个这段代码在那里不起作用,所以我想如果我想使用它,我需要控制台应用程序。

代码1

    QTextStream out(stdout);
        out << "Please enter login username and passwordn";
        out.flush();
然而

当我为linux创建项目时:

我不需要控制台应用程序,它工作得很好,例如code1按预期工作…我很困惑为什么?为什么在linux上工作,而不是在windows?

这是因为Windows在这方面很奇怪,因为图形应用程序默认没有控制台。这总是让我很恼火,我总是使用文件输出来调试。如果您希望真正获得一个控制台,下面的方法可能会解决这个问题:如何在GUI应用程序中写入控制台

Visual Studio有一个额外的调试控制台,用于跟踪调试输出。

这与您打印和读取输入的控制台不同。您可以将其设置为使用标准控制台,但这不是本例的意图。

qDebug()主要用于显示GUI应用程序运行时发生的事情的信息。

所以当你做一个动作,只看到一些反应时,你可以"跟踪"内部发生了什么,qDebug()语句发生了什么,而不中断GUI的执行。

查看更多信息:http://doc.qt.io/qt-5/debug.html#warning-and-debugging-messages

您需要添加console选项到您的Qt项目。假设您正在使用qmake,将此添加到.pro文件中:

CONFIG += console

参考:http://doc.qt.io/qt-5/qmake-variable-reference.html配置

它对其他平台没有影响,而不是Windows我认为(在Unix上,你总是有stderrstdoutstdin相同的方式,并有一个GUI不改变这一点)。在Windows上,它使控制台甚至GUI应用程序。