Qt timerEvent實現簡單秒表功能

本文實例為大傢分享瞭Qt timerEvent實現簡單秒表的具體代碼,供大傢參考,具體內容如下

#ifndef WIDGET_H
#define WIDGET_H
//頭文件
#include<QWidget>
#include<QObject>
#include<QTimerEvent>
#include<QTimer>
 
namespace Ui {
class Widget;
}
 
class Widget : public QWidget
{
    Q_OBJECT
 
public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
    double i = 0;
    //QString s = QString::number(i);
 
private:
    Ui::Widget *ui;
    //QTimer *myTimer;// 定義定時器對象
    int id1,id3;
    int id2 = 0;
 
protected:
    void timerEvent(QTimerEvent *event); // 聲明
 
private slots:
    void on_pushButton_clicked();
    void on_pushButton_3_clicked();
    void on_pushButton_2_clicked();
};
 
#endif // WIDGET_H
//widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include<QObject>
#include<QTimer>
#include<QDebug>
 
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->lineEdit->setFixedHeight(60);
    ui->lineEdit->setFont(QFont( "Arial" , 32 ));
    ui->lineEdit->setText("0.0");
 
}
 
Widget::~Widget()
{
    delete ui;
}
 
 
void Widget::timerEvent(QTimerEvent *event)
{
    // 判斷是哪個定時器
    if(event->timerId() == id1){
        qDebug() << "timer1";
        i = i+0.1;
        QString s = QString::number(i);
        ui->lineEdit->setText(s);
    }
 
}
void Widget::on_pushButton_clicked()  //開始
{
    id1 = startTimer(100);
    //timer_1 = startTimer(100);
 
}
 
void Widget::on_pushButton_3_clicked()  //停止
{
    killTimer(id1);
}
 
void Widget::on_pushButton_2_clicked()  //記錄
{
    QString s = ui->lineEdit->text();
    ui->listWidget->addItem(s);
    id2=id2+1;
    QString id2s = QString::number(id2);
    ui->label_2->setText("記錄次數:"+id2s);
}

ui

效果

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: