Qt实现闹钟功能界面

该代码示例展示了如何在Qt环境中创建一个带有启动和关闭功能的闹钟应用。myWidget类继承自QWidget,使用QTimer进行定时,QTime显示时间,QTextToSpeech实现语音播报。当时间匹配用户设定时,程序会语音提醒。
摘要由CSDN通过智能技术生成

要求

在这里插入图片描述

头文件

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>

#include <QTimer>   //定时器类
#include <QTime>    //时间类,显示时间使用

#include <QTimerEvent>

#include <QDateTime>    //日期时间类
#include <QDebug>
#include <QMouseEvent>

#include <QTextToSpeech>

QT_BEGIN_NAMESPACE
namespace Ui { class myWidget; }
QT_END_NAMESPACE

class myWidget : public QWidget
{
    Q_OBJECT

signals:
    //声明信号函数的权限
    void mysignal();    //此时定义了一个无参无返的信号函数

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

private slots:
    void on_btn_start_clicked();          //启动按钮的槽函数

    void on_timeout();   //自定义的处理时间信号的槽函数【启动按钮的槽函数触发的时间信号】

    void on_btn_close_clicked();        //关闭按钮的槽函数声明

private:
    Ui::myWidget *ui;
    //定义一个定时器指针
    QTimer *t;

    //定义一个语音播报员
    QTextToSpeech *s ;

};
#endif // MYWIDGET_H

源代码

#include "mywidget.h"
#include "ui_mywidget.h"

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

    //给定时器实例化对象空间
    t = new QTimer(this);

    //将定时器发射的timeout信号连接到自定义的槽函数
    connect(t, &QTimer::timeout, this, &myWidget::on_timeout);

    //实例化一个播报员
    s = new QTextToSpeech(this);


}

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

//启动按钮槽函数的定义
void myWidget::on_btn_start_clicked()
{
    //执行启动逻辑
    t->start(1000); //启动定时器,自动发射一个timeout信号,将此信号连接自定义的槽函数,每隔一定时间,系统会自动调用自定义的槽函数
    ui->btn_start->setText("闹钟模式ing");
    ui->btn_close->setText("关闭");
}

//处理timeout信号的槽函数定义
void myWidget::on_timeout()
{
    //获取当前时间
    QTime sysTime = QTime::currentTime();

    //将系统时间转换为字符串
    QString time_str = sysTime.toString();

    //将字符串展示到lab中
    ui->lable_show->setText(time_str);

    QFont ft;
    ft.setPointSize(25);    //时间显示的大小
    ui->lable_show->setFont(ft);

    //闹钟设定时间的比较
    if(time_str == ui->lineEdit_set->text())
    {
//        qDebug()<<"时间一致";
        //闹钟响起,语音播报备忘录
        s->say("闹钟响了闹钟响了");
    }
}


void myWidget::on_btn_close_clicked()
{
    ui->lineEdit_set->clear();
    ui->btn_start->setText("启动");
    ui->btn_close->setText("闹钟已关闭");
}

ui界面设置

在这里插入图片描述

结果显示

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值