1.
- #ifndef WIDGET_H
- #define WIDGET_H
-
- #include
- #include
//定时器事件类 - #include
//时间事件类 - #include
//时间类 - #include
//文字转语音类 - 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_startBtn_clicked(); //自定义启动按钮槽函数
-
- private:
- Ui::Widget *ui;
- int tId;//定义时间器ID
- QTextToSpeech* speecher; // 用QTextToSpeech实例化一个speecher对象
- };
- #endif // WIDGET_H
- #include "widget.h"
-
- #include
-
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- Widget w;
- w.show();
- return a.exec();
- }
- #include "widget.h"
- #include "ui_widget.h"
-
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::Widget)
- {
-
- ui->setupUi(this);
- tId=startTimer(1000);//当1秒钟时间超时时,自动走timerEvent()
- speecher = new QTextToSpeech(this); // 给speecher初始化和申请空间
- }
-
-
- Widget::~Widget()
- {
- delete ui;
- }
-
- void Widget::timerEvent(QTimerEvent *e)//重写定时器事件函数的实现
- {
- if(e->timerId()==tId)//判断是哪个定时器
- {
- //获取系统时间
- QTime sys_time =QTime::currentTime();
- //将系统时间转换成字符串
- QString t=sys_time.toString("hh:mm:ss");
-
- //将系统时间放入lab中
- ui->localtimeLab->setText(t);
- //将系统时间放入lab中
- ui->localtimeLab->setAlignment(Qt::AlignCenter);
-
- if(ui->showtimeLab->text()==t)//判显示的闹钟时间断标签里的时间是否和系统时间相等
- {
- for(int i=0;i<5;i++)
- {
- speecher->say(ui->contentLab->text());//把内容lab中的文字转换成语音,循环播报5次
- }
-
- }
-
- }
-
- }
- void Widget::on_startBtn_clicked()
- {
- // speecher->say("原神,启动!");
- ui->showtimeLab->setText(ui->LineEdit->text());//将文本编辑器的内容输入到显示闹钟时间的标签上
- ui->showtimeLab->setAlignment(Qt::AlignCenter);// 文字居中显示
- ui->LineEdit->setText("");// 清空输入框
- }