2012年4月8日

QT建隔一段時間做同一件事-使用QTimer

簡介:
在此用QT時,會有想要隔一段時間就做某件事的情況下,此時我們需要如何才能達成呢?



實作方法:
其實,直觀的想到,會有什麼關鍵字可以達成,Clock、timer?
讓我們去挖一下QT Document吧。

結果有了這麼個類別:







QTimer是一個非常容易達到的類別,並且只要簡單幾步就能完成:




讓我們再去看看start與timeout事件的介紹:





timeout是所謂的SIGNAL函式,把它當作事件來看待吧


start的參數填的是時間的間隔,例如我填1000(1毫秒),則代表每隔一毫秒,就會對timeout()發出SIGNAL,而此時你只要在對有connect到的SLOT函式做相對應的處理即可。




如果想要停止timer呢? 只要使用stop函式即可




程式碼:
宣告:
QTimer *timer;

初始化:
timer = new QTimer(this);   //建構子

啟動QTimer:
timer->start(1000);//1000毫秒 =1秒

停止QTimer:
timer->stop();

繫結事件:
QObject::connect(this->timer,SIGNAL(timeout()),this,SLOT(你的處理函式);





參考資料:
1.http://qt-project.org/doc/qt-4.8/QTimer.html

2.http://flykof.pixnet.net/blog/post/23259990-qt%E4%B8%8A%E9%87%8D%E8%A4%87%E5%9F%B7%E8%A1%8C%E4%BA%8B%E4%BB%B6

沒有留言:

ShareThis