簡體   English   中英

具有控制台輸出的Qt GUI應用程序-在Windows正常啟動時隱藏控制台

[英]Qt GUI application with console output - hide console on normal startup on Windows

如果我打開應用程序,則會出現一個空的控制台窗口,因為我已將CONFIG += console添加到我的.pro文件中。 我需要控制台,因為我已經實現了CLI,因此需要在控制台上打印一些內容。 在Linux和Mac OSX上,我實際上並不需要CONFIG += console 它只是工作。

如果.exe是通過雙擊正常執行的,而我的.exe是通過控制台窗口啟動的,那么如何防止打開Windows控制台呢?

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

不幸的是,Windows在這方面有些不足。 控制台應用程序將始終打開控制台,即使您不想要它也是如此。 您可以立即將其關閉,但看起來仍然很糟糕。

您的應用程序必須是非控制台應用程序。 啟動時,檢查您是否有權訪問控制台,就像從cmd.exe啟動時一樣。 然后訪問cmd的控制台並將您的輸出注入其中。

有關詳細信息,請參閱我的問題

這是一個GUI應用程序嗎? AFAIK不可能(或者至少不是很簡單)編寫一個既可以用作桌面(GUI)應用程序又可以用作控制台(CLI)應用程序的混合Qt應用程序。

我不確定您打算做什么。 如果您確實需要控制台變體,請嘗試基於相同的源構建兩個不同的應用程序(一個控制台版本和一個GUI版本)。

如果您只需要能夠打印出一些信息的GUI應用程序,請刪除控制台代碼,然后將輸出寫入文件中。

我認為這是您問題的答案: https : //stackoverflow.com/a/3370017/1091536

您需要控制台應用程序,而不是啟動GUI應用程序並打印其輸出。

您可以在這里找到用於啟動GUI應用程序的應用程序https://github.com/gomons/AppDebugLauncher

值得注意的是,在某些情況下,控制台窗口不會短暫出現。 例如,如果通過快捷方式將GUI設置為“最小化”,以gui模式運行:則不會顯示控制台窗口。 然后,在您的代碼中,您可以還原gui窗口的大小。 這有點討厭,但掩蓋了用戶的行為。

如果您要安裝程序,並且通常是通過快捷方式啟動的,則可以選擇它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM