在此用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
沒有留言:
張貼留言