2012-07-23 98 views
1

下面是從Qt文檔報價:爲什麼應該有一個QApplication

對於使用Qt任何GUI應用程序,也恰恰是一個QApplication對象

這是相當清楚的。但我無法弄清楚爲什麼。 面試時我被問到了這樣一個問題,現在我找不到合適的答案,請問有誰能解釋我?

回答

4
QCoreApplication

文檔提供一個提示:

QCoreApplication包含主事件循環,其中從 操作系統的所有事件(例如,計時器和網絡事件)和其它來源 處理和調度。它還處理 應用程序的初始化和結束,以及系統範圍 和應用程序範圍的設置。

只有一個事件循環可以在任何給定時間運行(在一個單獨的線程中),因此不同的QCoreApplication對象需要相互調用。處理事件隊列時,每個只會看到整個交互的部分內容。這對我來說似乎並不吸引......

另外,我認爲,QCoreApplication基本上是整個過程的抽象,所以在Qt進程和對象之間強制執行1:1對應是有意義的。

從技術上講,諸如QCoreApplication::instance()或各自的qApp宏顯然需要單個QCoreApplication實例。

1

QApplication包含幾個單身人士,作爲消息循環等。

相關問題