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定时器
}

效果演示

思维导图

相关推荐
草莓熊Lotso9 小时前
《算法闯关指南:动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数,02.三步问题
开发语言·c++·经验分享·笔记·其他·算法·动态规划
草莓熊Lotso10 小时前
Git 分支管理:从基础操作到协作流程(本地篇)
大数据·服务器·开发语言·c++·人工智能·git·sql
报错小能手10 小时前
C++异常处理 终极及总结
开发语言·c++
Algo-hx10 小时前
C++编程基础(九):预处理指令
c++
凌康ACG17 小时前
Sciter之c++与前端交互(五)
c++·sciter
郝学胜-神的一滴19 小时前
Linux命名管道:创建与原理详解
linux·运维·服务器·开发语言·c++·程序人生·个人开发
晚风(●•σ )20 小时前
C++语言程序设计——11 C语言风格输入/输出函数
c语言·开发语言·c++
恒者走天下21 小时前
秋招落定,拿到满意的offer,怎么提高自己实际的开发能力,更好的融入团队
c++
天若有情67321 小时前
【c++】手撸C++ Promise:从零实现通用异步回调组件,支持链式调用+异常安全
开发语言·前端·javascript·c++·promise
学困昇21 小时前
C++中的异常
android·java·c++