2023/4/7 设置闹钟
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
t = new QTimer(this);
broadCaster = new QTextToSpeech(this);
connect(t,&QTimer::timeout,this,&Widget::on_timeout);
initCurrentTime();
}
Widget::~Widget()
{
delete ui;
}
void Widget::initCurrentTime()
{
t = new QTimer(this);
connect(t,&QTimer::timeout,this,&Widget::showCurrentTime);
t->start(1000);
showCurrentTime();
}
void Widget::showCurrentTime()
{
QDateTime sysDate = QDateTime::currentDateTime();
QString date = sysDate.toString("yyyy-MM-dd hh:mm:ss");
ui->current_Time->setText(date);
ui->current_Time->setAlignment(Qt::AlignCenter);
}
void Widget::on_timeout()
{
int hh,mm,ss;
QStringList list = ui->set_alarm->text().split(":");
hh = list[0].toUInt();
mm = list[1].toUInt();
ss = list[2].toUInt();
}
void Widget::on_startBtn_clicked()
{
if(ui->startBtn->text() == "启动")
{
t_id = this->startTimer(1000);
ui->startBtn->setDisabled(true);
ui->stopBtn->setDisabled(false);
}
}
void Widget::on_stopBtn_clicked()
{
if(ui->stopBtn->text() == "关闭")
{
this->killTimer(t_id);
ui->startBtn->setDisabled(false);
ui->stopBtn->setDisabled(true);
}
}
void Widget::timerEvent(QTimerEvent *event)
{
if(event->timerId() == t_id)
{
QString time = QTime::currentTime().toString("hh:mm:ss");
int hh,mm,ss;
QStringList list_clock = ui->set_alarm->text().split(":");
hh = list_clock[0].toUInt();
mm = list_clock[1].toUInt();
ss = list_clock[2].toUInt();
qDebug()<< hh << " " << mm << " " << ss;
QStringList list = time.split(":");
int h,m,s;
h = list[0].toUInt();
m = list[1].toUInt();
s = list[2].toUInt();
if(h == hh && m == mm && s == ss)
{
broadCaster->say(ui->broadcast->toPlainText());
qDebug()<<"成功";
this->killTimer(t_id);
ui->startBtn->setDisabled(false);
ui->stopBtn->setDisabled(true);
}
}
}
void Widget::mousePressEvent(QMouseEvent *event)
{
startPoint = event->globalPos() - this->frameGeometry().topLeft();
}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
this->move(event->globalPos() - startPoint);
}
void Widget::paintEvent(QPaintEvent *event)
{
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4b8f0fb287b8cf67dcdb2ebcd815ea6e.png)