<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
計時器實現四個功能:開始計時、停止計時、暫停計時以及打點。當點選暫停時,開始按鈕和停止按鈕無法點選,此時暫停按鈕變為繼續。當點選停止時,開始按鈕和暫停按鈕無法點選,此時停止按鈕變為清零。
新建一個Mainwindow介面。基本設定與其他Qt專案類似,這裡不過多介紹。
UI介面如下:
介面中包含有6個控制元件,其主要內容如下:
名稱 | 型別 | 屬性 |
---|---|---|
LCDNumber | QLCDNumber | digitCount:18 |
開始 | QPushButton | objectName:btn_start |
停止 | QPushButton | objectName:btn_stop |
暫停 | QPushButton | objectName:btn_pause |
打點 | QPushButton | objectName:btn_log |
textBrowser | QTextBrowser | / |
【注意:將LCDNumber設定為右對齊的常見設定為:將其digitCount屬性設定為18左右】
佈局方式:
四個按鈕佈局方式為水平佈局,整體的佈局方式為垂直佈局。
標頭檔案中宣告五個槽函數,一個定時器物件,一個基本時間物件以及lcdNumber的時刻值,核心程式碼如下:
private slots: void updataTimeAndDisplay(); void on_btn_start_clicked(); void on_btn_stop_clicked(); void on_btn_pause_clicked(); void on_btn_log_clicked(); private: QTimer *ptimer; //定時器物件 QTime baseTime; //時間物件——00:00:00 QString showStr; //lcdNumber的時刻值
MainWindow主程式程式碼為:
ptimer=new QTimer; //初始化物件 connect(ptimer,SIGNAL(timeout()),this,SLOT(updataTimeAndDisplay()));
定義更新和顯示時間函數:
void MainWindow::updataTimeAndDisplay() { QTime current=QTime::currentTime();//獲取系統當前時間 int t=this->baseTime.msecsTo(current); //兩者相減的時間之差 QTime showtime(0,0,0,0);//初始時間 showtime=showtime.addMSecs(t);//增加tms showStr=showtime.toString("hh:mm:ss:zzz"); //轉換為string型別 ui->lcdNumber->display(showStr); //顯示 }
定義點選開始按鈕槽函數:
void MainWindow::on_btn_start_clicked() { baseTime=QTime::currentTime(); ptimer->start(1); }
定義點選停止按鈕槽函數:
void MainWindow::on_btn_stop_clicked() { if(ui->btn_stop->text()=="停止"){ ptimer->stop(); ui->btn_stop->setText("清零"); ui->btn_start->setEnabled(false);//開始按鈕無法點選 ui->btn_pause->setEnabled(false); }else{ ui->lcdNumber->display("00:00:00:000") ;//清零 ui->textBrowser->clear(); ui->btn_stop->setText("停止"); ui->btn_start->setEnabled(true);//開始按鈕可以點選 ui->btn_pause->setEnabled(true); } }
定義點選暫停按鈕槽函數:
void MainWindow::on_btn_pause_clicked() { static QTime pauseTime; //暫停時間【靜態】 if(ui->btn_pause->text()=="暫停"){ pauseTime=QTime::currentTime();//獲取點選暫停時的當前時間 ptimer->stop(); ui->btn_pause->setText("繼續"); ui->btn_start->setEnabled(false);//開始按鈕無法點選 ui->btn_stop->setEnabled(false); }else{ QTime cut=QTime::currentTime();//繼續時的時間 int t=pauseTime.msecsTo(cut);//差值 baseTime=baseTime.addMSecs(t); //後延相應的tms繼續計時 ptimer->start(1); ui->btn_pause->setText("暫停"); ui->btn_start->setEnabled(true);//開始按鈕可以點選 ui->btn_stop->setEnabled(true); } }
定義點選打點按鈕槽函數:
//打點 void MainWindow::on_btn_log_clicked() { ui->textBrowser->append(showStr);//新增到textBrowser中 }
以上就是Qt實現簡易計時器的範例程式碼的詳細內容,更多關於Qt計時器的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45