2016-02-22 24 views
1

如果因爲事件循環尚未啓動而導致exit不能正常工作,我該如何終止正在運行的Qt應用程序(QCoreApplication)。事件循環未啓動時不正當/殺死Qt應用程序

http://doc.qt.io/qt-5/qcoreapplication.html#exit

這個函數被調用後,應用程序離開主 事件循環,並返回從調用exec()。 exec()函數 返回returnCode。如果事件循環沒有運行,此功能 什麼都不做

一(傻?)的方法,我發現是啓動事件循環,並呼籲QCoreApplication::exit again,但是這是我最好的選擇?

+0

你真的要殺這個早嗎?它可以等待嗎? – user3528438

+0

這是一個非常罕見的,希望從未存在的條件。我在應用程序啓動過程中回覆了嚴重的錯誤情況,很可能會由'exit()'處理,但是如果它將被傳遞,我會在退出後的行中放置什麼? –

回答

1

如果我正確理解你的問題,你還沒有調用QApplication :: exec(),因此你的事件循環還沒有開始。

如果您還沒有所謂的exec()啓動事件循環爲什麼不直接調用STDLIB exit()函數或調用exec()

例如前檢查錯誤條件在main.cpp

if(!somethingWentReallyWrong) { 
    a.exec(); // Where a is your QApplication or QCoreApplication instance 
} else { 
    return myErrorCode; 
} 
+0

將嘗試stdlib exec()。可能的方法。如果不得不在某個函數中終止(出於某些特殊原因),我不能在main中終止。 –

+0

@HorstWalter「將嘗試stdlib exec()」=>你的意思是退出()?順便說一句你特別的原因是什麼? – Ilya

+0

'sts :: exit'是指。用例是一個自己的應用程序類(專門的'QApplication'),在少數情況下,我需要在事件循環開始之前退出。 –

相關問題