QTimer::singleShot


QTimer::singleShot(10, this,SLOT(eventOperation()));

單singleShot,表示它只會觸發一次,發出一次信號,然后來執行槽函數。

如果把槽函數設置成eventOperation(),那么當定時器到達時候,就會執行這個函數,在這個函數中定時器又會再次發出信號,然后執行槽函數eventOperation,這樣循環往復的,所以這是一個每隔10毫秒就執行一次的循環。一般我們會在線程定時刷新的操作里面使用這個函數。

 

[static] void QTimer::singleShot(int msec, const QObject *receiver, const char *member)

這個靜態函數在一個給定時間間隔 msec(毫秒) 之后調用一個槽。

用法1 :
假設類A有個槽函數 function() { }
我們要在10s之后執行它
就可以: QTimer::singleShot(10*1000,this, &A::function());

 

用法2:
實現循環
槽函數中還是singleShot 即:

function(){
        QTimer::singleShot(10*1000,this, &A::function());
    }

但是為了讓循環可控,應該加個條件

bool condition = true;
function(){
    if(condition){
        QTimer::singleShot(10*1000,this, &A::function());
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM