Qt 中的输出如何工作
how the outputs in Qt works
我对此感到困惑:
我用 Visual Studio 2013
当我为 windows 创建项目时:
当我使用 qDebug() 时,输出转到某些控制台输出。
这是我可以用来输入的控制台吗?或者我需要来自 Qt+=console 的那个
这段代码在那里不起作用,所以我想如果我想使用它我需要控制台应用程序。
代码 1
QTextStream out(stdout);
out << "Please enter login username and password\n";
out.flush();
然而
当我为 linux 创建项目时:
我不需要那个控制台应用程序,它运行良好,例如 code1 可以正常运行...我很困惑为什么?为什么在 linux 上有效但在 windows 上无效?
这是因为 Windows 这样很奇怪,因为图形应用程序默认没有控制台。
这总是让我很恼火,我总是使用文件输出来调试。
如果你真的想得到一个控制台,这可能会解决它:How to write to the console in a GUI application
Visual Studio 有一个额外的调试控制台,用于跟踪调试输出。
这与您打印和读取输入的控制台不同。您可以将它设置为使用标准控制台,但这不是这个的目的。
qDebug()
主要用于在 运行 GUI 应用程序时显示有关正在发生的事情的信息。
因此,当您执行一个操作并且只看到一些反应时,您可以 "trace" 使用 qDebug()
语句在内部发生了什么 在不中断 GUI 执行的情况下发生了什么。
查看此处了解更多信息:http://doc.qt.io/qt-5/debug.html#warning-and-debugging-messages
您需要向您的 Qt 项目添加 console
选项。假设您正在使用 qmake,将其添加到您的 .pro 文件中:
CONFIG += console
参考:http://doc.qt.io/qt-5/qmake-variable-reference.html#config
除了 Windows 我认为它对其他平台没有影响(在 Unix 上你总是有 stderr
和 stdout
和 stdin
相同的方式并且有一个 GUI不会改变)。在 Windows 上,它甚至为 GUI 应用程序启用控制台。
我对此感到困惑: 我用 Visual Studio 2013
当我为 windows 创建项目时:
当我使用 qDebug() 时,输出转到某些控制台输出。 这是我可以用来输入的控制台吗?或者我需要来自 Qt+=console 的那个 这段代码在那里不起作用,所以我想如果我想使用它我需要控制台应用程序。
代码 1
QTextStream out(stdout);
out << "Please enter login username and password\n";
out.flush();
然而
当我为 linux 创建项目时:
我不需要那个控制台应用程序,它运行良好,例如 code1 可以正常运行...我很困惑为什么?为什么在 linux 上有效但在 windows 上无效?
这是因为 Windows 这样很奇怪,因为图形应用程序默认没有控制台。 这总是让我很恼火,我总是使用文件输出来调试。 如果你真的想得到一个控制台,这可能会解决它:How to write to the console in a GUI application
Visual Studio 有一个额外的调试控制台,用于跟踪调试输出。
这与您打印和读取输入的控制台不同。您可以将它设置为使用标准控制台,但这不是这个的目的。
qDebug()
主要用于在 运行 GUI 应用程序时显示有关正在发生的事情的信息。
因此,当您执行一个操作并且只看到一些反应时,您可以 "trace" 使用 qDebug()
语句在内部发生了什么 在不中断 GUI 执行的情况下发生了什么。
查看此处了解更多信息:http://doc.qt.io/qt-5/debug.html#warning-and-debugging-messages
您需要向您的 Qt 项目添加 console
选项。假设您正在使用 qmake,将其添加到您的 .pro 文件中:
CONFIG += console
参考:http://doc.qt.io/qt-5/qmake-variable-reference.html#config
除了 Windows 我认为它对其他平台没有影响(在 Unix 上你总是有 stderr
和 stdout
和 stdin
相同的方式并且有一个 GUI不会改变)。在 Windows 上,它甚至为 GUI 应用程序启用控制台。