12月12日作业

设计一个闹钟

头文件

复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimerEvent>
#include <QTime>
#include <QTime>
#include <QTextToSpeech>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    void timerEvent(QTimerEvent *e);  //对基类中的虚函数重写
private slots:
    void on_btn_clicked();

private:
    Ui::Widget *ui;
    int id1;  //定时器id
    int id2;  //闹钟id
    QTextToSpeech *speecher;
};
#endif // WIDGET_H

源文件

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

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

    id1 = startTimer(1000);  //启动id1定时器
    speecher = new QTextToSpeech(this);
}

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

//定时器超时时,自动执行的代码
void Widget::timerEvent(QTimerEvent *e)
{
    //判断定时器
    if(e->timerId() == id1)
    {
        //获取系统时间
        QTime sys_time = QTime::currentTime();
        //将系统时间转换
        QString s = sys_time.toString("hh:mm:ss");
        //将取到的时间放入label1中
        ui->label1->setText(s);
        //居中显示
        ui->label1->setAlignment(Qt::AlignCenter);
    }
    else if(e->timerId() == id2)
    {
        //每秒判断一次,时间相同时做出反应
        if(ui->edit->text() == ui->label1->text())
        {
            ui->label3->setText("只要学不死,就往死里学");
            for(int i = 0;i < 5;i++)
            {
                speecher->say(ui->label3->text());
            }
        }
    }
}
//启动按钮按下后的进行处理的槽函数
void Widget::on_btn_clicked()
{
    id2 = startTimer(1000);  //启动id2定时器
}

效果演示

思维导图

相关推荐
小小龙学IT43 分钟前
FlatBuffers 深度解析:Google 开源零拷贝序列化库完全指南
c++·开源
wuminyu1 小时前
JDK21中虚拟线程和FFM协同实现高并发源码剖析
java·linux·c语言·jvm·c++
SWAGGY..2 小时前
【C++进阶】:(1)继承机制详解
java·jvm·c++
听取WA声一片(无恶意)2 小时前
CSP-J/CSP-S 深度优先搜索(DFS)完全讲义
c++·算法·深度优先
码匠许师傅2 小时前
【C++ 面试真题】27. 聊聊 C++ 的内存泄漏与内存布局
java·c++·面试
加油码4 小时前
动静态库的链接底层原理(进阶版)
linux·c++
一木 之林4 小时前
三、内存管理、指针与堆栈
c语言·jvm·c++
初夏睡觉5 小时前
原创题目 - 空壳恋爱
c++·算法·dp·oi·信息学·原创题目·值得挑战的题目
间歇性努力持续性发呆的野生快乐选手5 小时前
stl容器使用和算法简介
数据结构·c++
沙盘客6 小时前
AFSIM 官方案例库全景与解读方法论
c++·经验分享·后端