1、
程序代码:
widget.h:
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTime>//时间类
#include <QTimer>//时间事件类
#include <QTextToSpeech>//文本转语音类
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_startBtn_clicked();private:Ui::Widget *ui;int id;//定时器idint id2;//实例化一个语音播报员QTextToSpeech *speech;
};
#endif // WIDGET_H
widget.cpp:
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), speech(new QTextToSpeech(this))//实例化申请空间
{ui->setupUi(this);//纯净窗口this->setWindowFlag(Qt::FramelessWindowHint);//删除空白this->setAttribute(Qt::WA_TranslucentBackground);//启动定时器id = startTimer(1000);//系统每隔1秒 执行timerEvent()函数
}Widget::~Widget()
{delete ui;
}void Widget::timerEvent(QTimerEvent *e)
{//1、显示系统时间//获取系统时间QTimeQTime sys_time = QTime::currentTime();//获取当前系统时间//将系统时间转换成字符串QString s = sys_time.toString("hh:mm:ss");if(e->timerId() == id){//将系统时间设置到ui界面上的sysTimeui->sysTime->setText(s);//居中显示ui->sysTime->setAlignment(Qt::AlignCenter);}if(s == ui->Edit->text()){killTimer(id2);for(int i=0;i<5;i++){speech->say(ui->tipLab->text());}}}
//启动按钮对应的槽函数处理
void Widget::on_startBtn_clicked()
{//2、计时器开始计时//启动一个定时器id2 = startTimer(1000);//系统每隔1秒 执行timerEvent()函数
}
运行结果: