思维导图:
闹钟:
//widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget> //
#include<QTime> //定时器
#include<QDebug> //
#include<QTimer> // 时间类
#include<QTimerEvent> //定时器时间类
#include<QDateTime> //日期时间类
#include <QTextToSpeech> //播报者头文件
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_timeout();void on_pushButton_clicked();void on_pushButton_2_clicked();private:Ui::Widget *ui;//定义一个定时器指针QTimer *tim;\//定义第一个定时器int tid;//获取系统的时间QString dt;//定义一个播报者QTextToSpeech *speech;//定义获取定时的时间QString msg;
};
#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);//更改窗口名this->setWindowTitle("闹钟");//创建定时器对象tim = new QTimer(this);connect(tim,&QTimer::timeout,this,&Widget::on_timeout);tim->start(1000);//设置编辑器占位符ui->lineEdit->setPlaceholderText("请输入定时时间");//获取文本内容msg = ui->lineEdit->text();//实例化一个播报者对象speech = new QTextToSpeech(this);}Widget::~Widget()
{delete ui;
}
//定时器
void Widget:: on_timeout()
{//通过函数获取系统日期时间QDateTime sys_dt = QDateTime::currentDateTime();//将日期时间转化为字符串dt = sys_dt.toString("hh:mm:ss");//将标签设置居中显示ui->timeLab->setAlignment(Qt::AlignCenter);//将时间显示在ui显示界面ui->timeLab->setText(dt);}
//启动按钮对应的槽函数
void Widget::on_pushButton_clicked()
{ui->activateBtn->setEnabled(false);ui->txtLab->setEnabled(false);ui->lineEdit->setEnabled(false);msg = ui->lineEdit->text();if(msg==dt){speech->say(ui->txtLab->toPlainText());}
}
//关闭按钮对应的槽函数
void Widget::on_pushButton_2_clicked()
{speech->stop();ui->activateBtn->setEnabled(true);ui->txtLab->setEnabled(true);ui->lineEdit->setEnabled(true);
}