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

效果演示

思维导图

相关推荐

  1. 1213总结

    2023-12-13 06:42:04       52 阅读
  2. 1211总结

    2023-12-13 06:42:04       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-13 06:42:04       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-13 06:42:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-13 06:42:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-13 06:42:04       18 阅读

热门阅读

  1. 2.linux常用命令

    2023-12-13 06:42:04       32 阅读
  2. 【告警自动化处置脚本】

    2023-12-13 06:42:04       36 阅读
  3. 【环境系列】Linux虚拟机(Centos、Ubuntu)、云服务器

    2023-12-13 06:42:04       38 阅读
  4. webpack的使用

    2023-12-13 06:42:04       37 阅读
  5. 微信小程序---生命周期

    2023-12-13 06:42:04       42 阅读
  6. 微信小程序下载 base64 视频文件到本地相册

    2023-12-13 06:42:04       39 阅读
  7. kafka学习笔记--节点的服役与退役

    2023-12-13 06:42:04       45 阅读
  8. 小程序猎鹰策略组件

    2023-12-13 06:42:04       37 阅读
  9. 《C++新经典设计模式》之第2章 模板方法模式

    2023-12-13 06:42:04       33 阅读