Qt定时器及实现(详解)
小编:啊南 879阅读 2021.01.18
QtGuiApplication5.h
#pragma once #include#include "ui_QtGuiApplication5.h" #include #include class QtGuiApplication5 : public QMainWindow { Q_OBJECT public: QtGuiApplication5(QWidget *parent = Q_NULLPTR); private: Ui::QtGuiApplication5Class ui; QTimer *fTimer; //定时器 QTime fTimeCounter;//计时器 private slots: void on_timer_timeout(); //定时溢出处理槽函数 void on_btnStart_clicked(); void on_btnStop_clicked(); };
QtGuiApplication5.cpp
#include "QtGuiApplication5.h" #includeQtGuiApplication5::QtGuiApplication5(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); fTimer = new QTimer(this); fTimer->stop(); fTimer->setInterval(1000);//设置定时周期,单位:毫秒 connect(fTimer, SIGNAL(timeout()), this, SLOT(on_timer_timeout())); } void QtGuiApplication5::on_timer_timeout() { //定时器中断响 QTime curTime = QTime::currentTime(); //获取当前时间 ui.LCDHour->display(curTime.hour()); //显示小时 ui.LCDMin->display(curTime.minute()); //显示分钟 ui.LCDSec->display(curTime.second()); //显示秒 int va = ui.progressBar->value(); va++; if (va > 100) va = 0; ui.progressBar->setValue(va); } void QtGuiApplication5::on_btnStart_clicked() { fTimer->start();//定时器开始工作 fTimeCounter.start(); //计时器开始工作 ui.btnStart->setEnabled(false); ui.btnStop->setEnabled(true); //ui.btnSetIntv->setEnabled(false); } void QtGuiApplication5::on_btnStop_clicked() { fTimer->stop(); //定时器停止 int tmMsec = fTimeCounter.elapsed();//毫秒数 int ms = tmMsec % 1000; int sec = tmMsec / 1000; QString str = QString::asprintf("流逝时间:%d 秒,%d 毫秒", sec, ms); //ui.LabElapsTime->setText(str); ui.btnStart->setEnabled(true); ui.btnStop->setEnabled(false); //ui.btnSetIntv->setEnabled(true); }
界面显示:
相关推荐
- Qt加载XPM图像 XPM是一种基于ASCII编码的图像格式,一般用于创建图标。由于它是ASCII编码,很方便地在代码中使用。 Qt的QPixmap类支持XPM格式,原型如下:QPixmap::QPixmap(const char *const [] xpm)摘取Qt源码中的"严重警告"XPM图标:static const char* const c…
- 3DMAX提示和技巧 本主题标识使用 Civil View 的一些重要提示和技巧。常规使用屏幕分辨率至少为 1280x1024 的 Civil View。低于此分辨率时,一些面板将占用过多屏幕空间。 将视口设置为线框显示以达到最佳性能。 要尽可能简化用户界面,请在单个视口中工作并关闭 3ds Max 命令面…