9.11.

cpp 复制代码
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
    , speecher(new QTextToSpeech(this))
{
    //设置时钟
    ui->setupUi(this);
    startTimer(1000);
    //文本框label居中对齐
    ui->label_2->setAlignment(Qt::AlignCenter);
    connect(this,&Widget::my_signal,this,&Widget::my_slot);
}

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

void Widget::timerEvent(QTimerEvent* e)
{

    QTime sys_time = QTime::currentTime();
    QString t = sys_time.toString("hh:mm:ss");
    QString a = sys_time.toString("hh:mm");
    ui->time->setText(t);
    ui->time->setAlignment(Qt::AlignCenter);
    if(a == ui->alarmClock->text())
    {
        ui->voiceBox->setText("现在是北京时间"+a);
        emit my_signal();
    }
}

void Widget::on_logIn_clicked()
{
    //未输入闹钟就启动
    if(ui->logIn->text() == "启动闹钟" && ui->alarmClock->text() == "")
    {
        qDebug() << "请输入闹钟时间\n";
    }
    if(ui->logIn->text() == "启动闹钟" && ui->alarmClock->text() != "")
    {//正常启动
        ui->logIn->setText("关闭闹钟");
        ui->voiceBox->setText("闹钟已启动");
    }
    else if(ui->logIn->text() == "关闭闹钟")
    {//关闭闹钟并清除闹钟
        ui->voiceBox->setText("闹钟已关闭");
        ui->alarmClock->clear();
        ui->logIn->setText("启动闹钟");
    }
}

void Widget::my_slot()
{
    for (int i=0;i<5;i++)
    {
        speecher->say(ui->voiceBox->text());
    }
}

相关推荐
lingchen19065 天前
Windows CMD 的 `cd`(change directory,切换目录)命令
windows·命令模式
Lost of 程序猿11 天前
命令模式实战:把“下单后的动作“打包成可执行的任务
后端·设计模式·c#·asp.net·命令模式
加载力科技11 天前
硬盘咔咔响是坏盘信号!赶在数据丢失前克隆换盘:不重装系统、不丢文件
windows·嵌入式硬件·系统安全·策略模式·命令模式·硬盘
czhc11400756631 个月前
2026-09-10 综合博客:异步异常 + 排查核实思维
命令模式
geovindu1 个月前
CSharp: Command Pattern
开发语言·后端·c#·.net·.netcore·命令模式·行为模式
Java后端的Ai之路1 个月前
21、Python - 命令模式
开发语言·人工智能·python·命令模式·外观模式
Flutter OH1 个月前
Flutter OH 卡死冻屏问题定位指南
flutter·命令模式
AI人工智能+电脑小能手1 个月前
大白话说Java设计模式-34-命令模式(业务实战篇)
java·spring·设计模式·命令模式·异步任务·撤销重做·事务封装
云深处@2 个月前
【C++设计模式】命令模式
c++·设计模式·命令模式
林浩杨_2 个月前
linux搜索命令(grep+sed)
linux·命令模式