有兩種方法實現定時器。
第一種。自己建立關聯。
1.新建gui工程,工程名可以設定為timer。並在主介面上新增乙個標籤label,並設定其顯示內容為「0000-00-00 00:00:00 星期日」。
2.在mainwindow.h中新增槽函式宣告。
private slots:
void timerupdate();
3.在mainwindow.cpp中新增**。
新增#include 的標頭檔案包含,這樣就包含了qtcore下的所有檔案。
建構函式裡新增**:
qtimer *timer = new qtimer(this);
//新建定時器
connect(timer,signal(timeout()),this,slot(timerupdate()));
//關聯定時器計滿訊號和相應的槽函式
timer->start(1000);
//定時器開始計時,其中1000表示1000ms即1秒
4.然後實現更新函式。
void mainwindow::timerupdate()
5.執行程式,效果如下。
第二種。使用事件。(有點像微控制器中的定時器啊)
1.新建工程。在視窗上新增兩個標籤。
2.在main.cpp中新增**,實現中文顯示。
#include
qtextcodec::setcodecfortr(qtextcodec::codecforlocale());
3.在mainwindow.h中新增**。
void timerevent(qtimerevent *);
4.在mainwindow.cpp中新增**。
新增標頭檔案#include
在建構函式裡新增以下**。
starttimer(1000);//其返回值為1,即其timerid為1
starttimer(5000);//其返回值為2,即其timerid為2
starttimer(10000); //其返回值為3,即其timerid為3
新增了三個定時器,它們的timerid分別為1,2,3。注意,第幾個定時器的返回值就為幾。所以要注意定時器順序。
在下面新增函式實現。
void mainwindow::timerevent(qtimerevent *t) //定時器事件
} 這裡新增了三個定時器,並都在定時器事件中判斷它們,然後執行相應的功能。這樣就不用每個定時器都寫乙個關聯函式和槽函式了。
隨機數的實現:
上面程式中的qrand(),可以產生隨機數,qrand()%10可以產生0-9之間的隨機數。要想產生100以內的隨機數就%100。以此類推。
但這樣每次啟動程式後,都按同一種順序產生隨機數。為了實現每次啟動程式產生不同的初始值。我們可以使用qsrand(time(0));實現設定隨機數的初值,而程式每次啟動時time(0)返回的值都不同,這樣就實現了產生不同初始值的功能。
我們將qsrand(time(0));一句加入建構函式裡。
程式最終執行效果如下。
Spring Spring中定時器實現
在一些工作需要使用到定時器,spring 很好的整合了定時器的功能!在spring 中使用quartz,本文介紹spring3.0以後自主開發的定時任務工具,spring task,可以將它比作乙個輕量級的quartz,而且使用起來很簡單,除spring相關的包外不需要額外的包,下面介紹兩種方式實現...
在Python Tkinter中實現定時重新整理資料
最近正在做乙個關於tkinter的程式設計,發現tk雖然通過按鍵,能實現相關函式的重新整理,使得視窗中的資料也實時更新。但我現在冒出這樣乙個念頭,要是我想不通過按鍵實現某些資料的實時重新整理,應該怎麼做?起初我便在tk程式設計中加入乙個while迴圈,使資料進行重新整理,結果導致程式卡在whlie迴...
在Oracle中實現定時操作
眾所周知,一般作業系統會提供定時執行任務的方法,例如 unix平台上提供了讓系統定時執行任務的命令crontab。但是,對於某些需求,例如 一些對資料庫表的操作,最為典型的是 交易所每日 後的結算,它涉及大量的資料庫表操作,如果仍然利用作業系統去定時執行,不僅需要大量的程式設計工作,而且還會出現使用...