【问题标题】:Qt GUI application with console output - hide console on normal startup on Windows带有控制台输出的 Qt GUI 应用程序 - 在 Windows 上正常启动时隐藏控制台
【发布时间】:2014-04-29 21:15:29
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ windows macos qt console


    【解决方案1】:

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

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

    详情请见my question about this

    【讨论】:

      【解决方案2】:

      它是一个 GUI 应用程序? AFAIK 不可能(或至少不是微不足道的)编写可以同时充当桌面 (GUI) 应用程序控制台 (CLI) 应用程序的混合 Qt 应用程序。

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

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

      【讨论】:

        【解决方案3】:

        我想这里是你问题的答案:https://stackoverflow.com/a/3370017/1091536

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

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            猜你喜欢
            • 2011-03-22
            • 2011-01-09
            • 2018-01-12
            • 2023-03-23
            • 2011-04-20
            • 2015-11-18
            • 1970-01-01
            • 2015-08-17
            • 1970-01-01
            相关资源
            最近更新 更多