如果我打开我的应用程序,一个空的控制台窗口出现,因为我添加了CONFIG += console
到我的.pro
文件。我需要控制台,因为我已经实现了一个CLI,需要在控制台上打印一些东西。在Linux和Mac OSX上,我实际上不需要CONFIG += console
。
如果.exe
通过双击正常执行,但如果我的.exe
通过控制台窗口启动,则显示一些输出,我如何防止打开窗口控制台?
基本上,我使用qDebug() << "myText";
,然后用return 0;
退出应用程序。
遗憾的是,Windows在这方面有些不足。控制台应用程序将总是打开控制台,即使您不想要它。你可以马上缝合,但它看起来还是很糟糕。
您的应用程序必须是非控制台应用程序。在启动时,检查您是否有权访问控制台,就像从cmd.exe启动时一样。然后访问cmd的控制台并将输出注入其中。
这是一个GUI应用程序吗?我敢说这是不可能的(或者至少不是微不足道的)编写一个混合Qt应用程序,可以作为桌面(GUI)应用程序和控制台(CLI)应用程序。
我不确定你打算做什么。如果您确实需要一个控制台变体,请尝试基于相同的源构建两个不同的应用程序(一个控制台构建和一个GUI构建)。如果您只需要一个能够打印出一些信息的GUI应用程序,则删除控制台代码并将输出写入文件。
我想这是你问题的答案:https://stackoverflow.com/a/3370017/1091536
您需要控制台应用程序,然后启动您的GUI应用程序并打印它的输出。
您可以在这里找到用于启动GUI应用程序的应用程序https://github.com/gomons/AppDebugLauncher
值得注意的是,在某些情况下,控制台窗口不会短暂出现。例如,如果您在gui模式下通过快捷方式运行,并将运行设置为最小化:控制台窗口将不会出现。然后,在代码中,您可以恢复gui窗口的大小。这是一个令人讨厌的解决方案,但掩盖了用户的行为。
如果你的程序要安装并且通常通过快捷方式启动,那么它可能是一个选项