需求:通过LCDNumber进行计数
间隔时间1s、可以重置、暂停
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTimer>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
QTimer *timer;//定时器
int value = 0;
void Init();
private slots:
void on_timer_out();
void on_btn_start_clicked();
void on_btn_pause_clicked();
void on_btn_reset_clicked();
};
#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);
Init();
connect(timer,&QTimer::timeout,this,&Widget::on_timer_out);
}
Widget::~Widget()
{
delete ui;
}
void Widget::Init()
{
timer = new QTimer(this);
timer->setInterval(1000);//定时周期1s
timer->stop();
}
void Widget::on_timer_out()
{
value++;
ui->lcdNumber->display(value);
}
void Widget::on_btn_start_clicked()
{
timer->start();//1s触发一次
ui->btn_start->setEnabled(false);
ui->btn_pause->setEnabled(true);
ui->btn_reset->setEnabled(true);
}
void Widget::on_btn_pause_clicked()
{
timer->stop();
ui->btn_start->setEnabled(true);
ui->btn_pause->setEnabled(false);
ui->btn_reset->setEnabled(true);
}
void Widget::on_btn_reset_clicked()
{
timer->stop();
value = 0;
ui->lcdNumber->display(value);
ui->btn_start->setEnabled(true);
ui->btn_pause->setEnabled(true);
ui->btn_reset->setEnabled(false);
}
效果图