#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QMovie *movie=new QMovie(":/picture/preview.gif");
ui->label->setMovie(movie);
ui->label->setScaledContents(true);
this->setAttribute(Qt::WA_TranslucentBackground);
this->setWindowFlag(Qt::FramelessWindowHint);
movie->start();
movie->setSpeed(100);
//获取到系统时间 QTime
QTime sys_time = QTime::currentTime();
QString t = sys_time.toString("hh--mm--ss");
//将系统时间放入label中
ui->lineEdit_2->setText(t);
//居中显示
ui->label->setAlignment(Qt::AlignCenter);
};
Widget::~Widget()
{
delete ui;
}
void Widget::timerEvent(QTimerEvent *e){
QTime sys_time = QTime::currentTime();
QString t = sys_time.toString("hh--mm--ss");
if (e->timerId() == id) {
if (countdown > 0) {
countdown--;
ui->lineEdit_2->setText(QString::number(countdown));
} else {
killTimer(id);
QTextToSpeech *speech = new QTextToSpeech(this);
QString message = ui->label_2->text();
for (int i = 0; i < 5; ++i) {
speech->say(message);
}
}
}
}
void Widget::on_pushButton_clicked()
{
if (ui->pushButton->text() == "启动") {
countdown = ui->lineEdit->text().toInt();
id = startTimer(1000);
ui->pushButton->setText("关闭");
} else {
killTimer(id);
ui->pushButton->setText("启动");
}
}
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include<QMovie>
#include<QFrame>
#include<QLabel>
#include<QTimerEvent> //定时器事件类
#include<QTime> //时间类
#include<QtTextToSpeech>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
void timerEvent(QTimerEvent *e);
private slots:
void on_pushButton_clicked();
private:
Ui::Widget *ui;
int id;
int countdown;
};
#endif // WIDGET_H
![](https://img-blog.csdnimg.cn/direct/cbc6db4d0e12443fb226720aaa0e86fc.gif)