#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();
}
}
思维导图: