2024.2.23 C++&&QT 作业

思维导图

练习题

1>简单实现闹钟播报,设置时间,当系统时间与设置时间相同时播报语音5次,然后停止。如果设置时间小于当前系统时间,则弹出消息提示框,并清空输入框。

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->timeLabel->setAlignment(Qt::AlignCenter);
    ui->showLabel->setAlignment(Qt::AlignCenter);
    id = startTimer(1000);

}
int flag = 0;//在点击按钮才会有语音播报
QString time_str;//时间字符串
void Widget::timerEvent(QTimerEvent *event)
{
    //显示系统时间
    QTime sys_time = QTime::currentTime();
    time_str = sys_time.toString("hh:mm:ss");
    ui->timeLabel->setText(time_str);

    //获取输入的时间,和系统时间比较
    QString setTime = ui->lineEdit->text();
    //时间到则语音播报label文本内容
    QTextToSpeech *tts = new QTextToSpeech(this);
    if(setTime == time_str && flag == 1)
    {
        for(int i = 1; i <= 5; i++)
        {
            tts->say(ui->showLabel->text());
        }
        ui->showLabel->setText("播报完毕,关闭闹钟");
        killTimer(id);
    }
}

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


void Widget::on_timeBtn_clicked()
{
    if(ui->lineEdit->text() < time_str)
    {
        //设定时间小于当前时间
        int ret = QMessageBox::information(
                    this,
                    "提示",
                    "设定时间小于当前时间,请重新设定!",
                    QMessageBox::Ok);
        if(ret == QMessageBox::Ok)
        {
            //确认点击ok后,清空输入框
            ui->lineEdit->setText("");
        }
    }else{
        flag = 1;
        ui->showLabel->setText("时间到了");
    }

}

相关推荐
是立不是利5 小时前
大文件导致请求被拒的连锁反应
开发语言·前端·javascript
東隅已逝,桑榆非晚5 小时前
vector(模拟实现)
c++·笔记·学习
野生技术架构师5 小时前
1200 道 JAVA 面试题(各大企业常见面试题及答案)
java·开发语言
“AI国潮设计-小江”6 小时前
【Python/SDXL实战】潮汕国潮IP视觉落地:普宁美食猫IP & 创意甜品设计(附ComfyUI工作流思路)
开发语言·人工智能·python·prompt·aigc
Yyyyyy~6 小时前
【java】类和对象
java·开发语言
蒸蒸yyyyzwd6 小时前
cpp 选手备战秋招学习笔记 day36
c++
草莓熊Lotso6 小时前
【Redis 进阶】主从复制深度解析:从配置落地到 PSYNC 同步原理
linux·开发语言·网络·数据库·redis·缓存·php
用户69586106727116 小时前
从源码到加载器:__attribute__((constructor)) / __attribute__((destructor))的跨平台实现原理详解
c++
Joy T6 小时前
Spring AI 2.0 进阶入门:Workflow、Routing、Task State 与可控 Agent
开发语言·人工智能·workflow·routing·springai·orchestrator·evaluator
重生之小比特6 小时前
【Java SE】抽象类和接口
java·开发语言