带控制台输出的Qt GUI应用程序 - 在Windows上正常启动时隐藏控制台

时间:2014-03-22 11:10:12

标签: c++ windows macos qt console

如果我打开我的应用程序,则会出现一个空的控制台窗口,因为我已将CONFIG += console添加到我的.pro文件中。我需要控制台,因为我已经实现了CLI,其中一些东西需要在控制台上打印出来。在Linux和Mac OSX上,我实际上并不需要CONFIG += console。它只是有效。

如果.exe通过双击正常执行,如何通过控制台窗口启动.exe,则如何阻止打开Windows控制台?

基本上,我使用qDebug() << "myText";然后我使用return 0;退出应用程序。

4 个答案:

答案 0 :(得分:1)

不幸的是,Windows在这方面有些不足。控制台应用程序将始终打开控制台,即使您不想要它。你可以立即关闭它,但它看起来仍然很糟糕。

您的应用程序必须是非控制台应用程序。在启动时,检查您是否可以访问控制台,就像从cmd.exe启动时一样。然后访问cmd的控制台并将输出注入其中。

有关详细信息,请参阅my question about this

答案 1 :(得分:0)

这是一个GUI应用程序? AFAIK不可能(或者至少不是微不足道)编写一个混合的Qt应用程序,它既可以作为桌面(GUI)应用程序,也可以作为控制台(CLI)应用程序。

我不确定你打算做什么。如果您确实需要控制台变体,请尝试基于相同的源(一个控制台构建和一个GUI构建)构建两个不同的应用程序。

如果您只需要一个能够打印出某些信息的GUI应用程序,请删除控制台代码并将输出写入文件。

答案 2 :(得分:0)

我认为这是一个问题的答案:https://stackoverflow.com/a/3370017/1091536

您需要控制台应用程序,而不是启动您的GUI应用程序并打印它的输出。

您可以在此处找到启动GUI应用程序的应用程序https://github.com/gomons/AppDebugLauncher

答案 3 :(得分:0)

值得注意的是,在某些情况下,控制台窗口不会短暂出现。例如,如果您通过快捷方式在运行设置为最小化的情况下以gui模式运行:控制台窗口将不会出现。然后,在您的代码中,您可以恢复gui窗口的大小。它有点令人讨厌的解决方法,但掩盖了用户的行为,更多。

如果您要安装程序并通常通过快捷方式启动,那么它可能是一个选项。