



- #include "clo.h"
- #include "ui_clo.h"
-
- Clo::Clo(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::Clo)
- {
- ui->setupUi(this);
- //设置窗口大小
- this->setFixedSize(600,400);
- //设置闹钟时间默认关闭
- ClockT=false;
- ui->Stop->setDisabled(true);
- //定义计时器
- timer = new QTimer(this);
- timer->start(1000);
- //将计时器与当前时间与检查函数连接
- connect(timer, SIGNAL(timeout()), this, SLOT(updateTime()));
- //设置文本大小
- QFont font1,font2,font3;
- font1.setPointSize(60);
- font2.setPointSize(20);
- font3.setPointSize(60);
- ui->Time->setFont(font1);
- ui->SetTime->setFont(font2);
- ui->ClockText->setFont(font3);
- }
-
- Clo::~Clo()
- {
- delete ui;
- }
-
- void Clo::on_Start_clicked()
- {
- //启用闹钟时间
- ClockT = true;
- //使控件不可用
- ui->SetTime->setDisabled(true);
- ui->Start->setDisabled(true);
- ui->Stop->setEnabled(true);
- //读取闹钟设置时间
- QString timeText = ui->SetTime->text();
- alarmTime = QTime::fromString(timeText, "hh:mm:ss");
- }
-
- void Clo::on_Stop_clicked()
- {
- stopClock();
- }
-
- void Clo::updateTime()
- {
- //读取当前时间 运行检查函数
- ui->Time->setText(QTime::currentTime().toString("hh:mm:ss"));
- if(ClockT)
- {
- Check();
- }
- }
-
- void Clo::stopClock()
- {
- //将闹钟状态设为停止 设置和启动按钮亮起
- ClockT= false;
- ui->SetTime->setEnabled(true);
- ui->Start->setEnabled(true);
- ui->Stop->setDisabled(true);
- }
-
- void Clo::Check()
- {
- QTime currentTime = QTime::currentTime();
- if (currentTime >= alarmTime)
- {
- //检查是否成功运行
- qDebug()<<"输出";
- // 如果闹钟触发,读取文本框内容并朗读
- QString message = ui->ClockText->toPlainText();
- if (!message.isEmpty())
- {
- QTextToSpeech *speech = new QTextToSpeech;
- speech->say(message);
- }
- stopClock();
- }
- }
思维导图:
