背景:單執行緒下,進行載入檔案或者其他耗時長的任務時,需要邊進行邊實時顯示進度條。由於單程序原因,直接對QProgressBar 或者其他ui 設值時不能直接在介面上重新整理顯示。
方案:設值後,呼叫QCoreApplication::processEvents(),用於在當前事件迴圈中處理所有當前未處理的事件,允許GUI響應。未防止過多UI事件的觸發引起其他問題,可以使用引數QEventLoop::ExcludeUserInputEvents來過濾使用者輸入事件。eg : QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);