widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTimerEvent> //计时器类
#include <QTime> //时间类
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void timerEvent(QTimerEvent *e);//计时器函数private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();private:Ui::Widget *ui;int tid; int naozhong;QTime time;
};
#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);tid = startTimer(1000);//启动计时器ui->naozhongEdit->setPlaceholderText("请输入闹钟时间");ui->naozhongEdit->setFont(QFont("Agency FB",20,50,false));}Widget::~Widget()
{delete ui;
}void Widget::timerEvent(QTimerEvent *e)
{if(e->timerId() == tid)//系统时间的计时器事件{time = QTime::currentTime();//获取当前时间QString s = time.toString("hh:mm:ss");//将时间内容转换为qstring类型ui->sys_time_Lab->setText(s);//设置标签中内容ui->sys_time_Lab->setFont(QFont("Agency FB",80,50,false));//设置标签字体ui->sys_time_Lab->setAlignment(Qt::AlignCenter);//设置字体居中}if(e->timerId() == naozhong)//设置闹钟的计时器事件{time = QTime::currentTime();QString s = time.toString("hh:mm:ss");ui->sys_time_Lab->setText(s);if(s == ui->naozhongEdit->text())//如果系统时间与设置时间一致{ui->naozhongLab->setText("起床辣!!!!!");//显示内容ui->naozhongLab->setFont(QFont("Agency FB",60,50,false));//内容字体}}
}void Widget::on_pushButton_clicked()
{naozhong = startTimer(1000);//点击开始设置naozhong计时器
}void Widget::on_pushButton_2_clicked()
{killTimer(naozhong);//点击停止关闭naozhong计时器
}