QT实现的定时器

功能描述

  • QT入门项目
  • 能实现简单的启动、停止、清空、打点等功能

一、QT实现的定时器

widget.h代码实现:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include "QTime"
#include "QTimer"

QT_BEGIN_NAMESPACE
namespace Ui {
    
     class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    
    
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    QTimer timer;
    QTime time;


private slots:
    void on_startBtn_clicked();
    void timer_slot();
    void on_stopBin_clicked();

    void on_resetBtn_clicked();

    void on_bitBtn_clicked();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

widget.cpp代码实现:

#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    
    
    ui->setupUi(this);
    connect(&timer,SIGNAL(timeout()),this,SLOT(timer_slot()));
    time.setHMS(0,0,0,0);
    ui->timeShow->setText("00:00:00:000");
}

Widget::~Widget()
{
    
    
    delete ui;
}

void Widget::timer_slot()
{
    
    
    //qDebug("哈喽,QT");
    time = time.addMSecs(30);
    ui->timeShow->setText(time.toString("hh:mm:ss.zzz"));
}
void Widget::on_startBtn_clicked()
{
    
    
    timer.start(30);
}

void Widget::on_stopBin_clicked()
{
    
    
    timer.stop();
}

void Widget::on_resetBtn_clicked()
{
    
    
    if(timer.isActive())
    {
    
    
        //qDebug("定时器开启");
        timer.stop();
    }
    ui->timeShow->setText("00:00:00:000");
    ui->textBrowser->clear();
}

void Widget::on_bitBtn_clicked()
{
    
    
    //QString msg = ui->timeShow->text();

   ui->textBrowser->append(time.toString("hh:mm:ss.zzz"));
}

二、效果展示

在这里插入图片描述
源码下载

猜你喜欢

转载自blog.csdn.net/qq_37120496/article/details/115347696