qt简易闹钟

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    ui->stopBtn->setDisabled(true);

    this->setFixedSize(this->size());   //设置固定大小
    this->setWindowTitle("简易闹钟");

    //实例化一个播报员
    speecher = new QTextToSpeech(this);


}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_startBtn_clicked()
{
    ui->startBtn->setDisabled(true);
    ui->alarmEdit->setReadOnly(true);
    ui->textEdit->setReadOnly(true);
    ui->stopBtn->setEnabled(true);
    tId = startTimer(100);     //定义一个计时器
}

void Widget::timerEvent(QTimerEvent *e)
{

    //判断是哪个计时器就位
    if (e->timerId() == tId)
    {
        QTime sys_time = QTime::currentTime();  //获取系统时间

        //将系统时间转换为字符串
        QString t = sys_time.toString();

        //将字符串展示到label
        ui->timeLb->setText(t);

        alarmTime = ui->alarmEdit->text();  //获取闹钟时间

        //如果到了时间就开始播报
        if (t == alarmTime)
        {
            for (int i = 0; i < 10; i++)
            {

                speecher->say(ui->textEdit->toPlainText());
            }
        }



    }
}

void Widget::on_stopBtn_clicked()
{
    ui->startBtn->setDisabled(false);
    ui->alarmEdit->setReadOnly(false);
    ui->textEdit->setReadOnly(false);
    speecher->stop();
    killTimer(tId);
}
相关推荐
萧瑟余晖2 分钟前
Hibernate 核心原理与架构详解
开发语言·架构·hibernate
爱喝水的鱼丶3 分钟前
SAP-ABAP:SAP MM 模块物料主数据批量导入与增强开发:字段扩展、校验逻辑与批量导入工具开发
开发语言·性能优化·sap·abap·增强·经验交流·mm
geovindu7 分钟前
rust:Builder Pattern
开发语言·设计模式·rust·建造者模式
白远山15 分钟前
健身场馆无人自动化解决方案:从架构到落地实践
java·开发语言·数据库·数据挖掘·需求分析
Data_Journal1 小时前
如何将网页抓取用于机器学习
大数据·开发语言·数据库·python·scrapy
郝学胜-神的一滴2 小时前
Effective Python 条款 13:善用星号解包,告别下标切片拆分的坑
服务器·开发语言·数据结构·python·程序人生·pycharm
一水鉴天2 小时前
词、术语、概念:从特征集收束到统一拓扑变换的升格与降格模型 20260915(豆包)
开发语言·人工智能
weixin_307779132 小时前
C++代码实现MATLAB中的ode45函数功能
开发语言·c++·算法·matlab
是立不是利3 小时前
大文件导致请求被拒的连锁反应
开发语言·前端·javascript