前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt定时器及实现(详解)

Qt定时器及实现(详解)

作者头像
zls365
发布2020-08-19 11:10:03
2.3K0
发布2020-08-19 11:10:03
举报
文章被收录于专栏:CSharp编程大全CSharp编程大全

QtGuiApplication5.h

代码语言:javascript
复制
#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_QtGuiApplication5.h"
#include <qtimer.h>
#include <QTime>

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

代码语言:javascript
复制
#include "QtGuiApplication5.h"
#include <QTime>

QtGuiApplication5::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);
}

界面显示:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CSharp编程大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档