当前位置: 首页 > article >正文

QT作业4

Label上显示系统时间,程序运行就要有。
Lable2,:请输入闹钟的事件 行编辑器和启动按钮。启动按钮之后,到了行编辑器内的时间后,就开始语音播报最下方label中的内容。
语音播报5次
在这里插入图片描述
widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QDebug>
#include <QTime>//时间类
#include <QTimerEvent>//时间事件类
#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_pushButton_clicked();

private:
    Ui::Widget *ui;
    int id;//定时器id
    int id2;//定时器2的id
    QTextToSpeech *speecher;//语音播报
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
    ,speecher(new QTextToSpeech)
{
    ui->setupUi(this);
    QTime sys_time=QTime::currentTime();//获取系统时间
    QString t=sys_time.toString("hh:mm:ss");//将系统时间转成字符串
     ui->label->setText(t);//将当前时间显示在label中
     id=startTimer(1000);//每隔一秒执行timerEvent()函数

}
//定时器超时执行该函数
void Widget::timerEvent(QTimerEvent *e){
    if(e->timerId()==id){
        //执行第一个label的定时功能
        QTime sys_time=QTime::currentTime();//获取系统时间
        QString t=sys_time.toString("hh:mm:ss");//将系统时间转成字符串
        ui->label->setText(t);//将当前时间显示在label中
    }
    if(e->timerId()==id2)
    {
        //执行闹钟的定时功能
        qDebug()<<"hao"<<endl;
        speecher->say(ui->label_4->text());
        speecher->say(ui->label_4->text());
        speecher->say(ui->label_4->text());
        speecher->say(ui->label_4->text());
        speecher->say(ui->label_4->text());
        //关闭定时器
        killTimer(id2);
    }
}
Widget::~Widget()
{
    delete ui;
}

//启动按钮的槽函数
void Widget::on_pushButton_clicked()
{
    //读取用户设置的闹钟时间
    QString t1=ui->lineEdit->text();
    qDebug()<<"用户设置的时间:"<<t1<<endl;
    //设置一个定时器,到达该时间就播报
    //求出定时器间隔时间
    QTime time1=QTime::currentTime();//当前时间
    QTime time2=QTime::fromString(t1);//label3中的时间
    int cha=time1.msecsTo(time2);//当前时间和设置时间相差的毫秒数
    qDebug()<<"相差毫秒数:"<<cha<<endl;
    qDebug()<<"相差秒数:"<<cha/1000<<endl;
    id2=startTimer(cha);
}

在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/460136.html

相关文章:

  • 文件本地和OSS上传
  • DDD(一)—— Authentication with JWT
  • 刷入super镜像报错 FAILED (remote: ‘Error: Last flash failed : Volume Full‘)
  • 机器学习经典算法——线性回归
  • 数据可视化分析详解
  • SpringMVC(一)配置
  • 一文大白话讲清楚CSS元素的水平居中和垂直居中
  • 浅显易懂的 git 入门
  • 电池放电仪在各领域的作用
  • android——屏幕适配
  • 【Flink运行时架构】系统构架
  • 咚次游戏加速1.1.4.2 | 免费PC游戏加速器,支持1473款游戏加速
  • 如何初始化css样式?为什么要初始化css?
  • python-LeetCode-两数之和
  • Spring Boot缓存预热实战指南
  • .net core 的字符串处理
  • 三大行业案例:AI大模型+Agent实践全景
  • 美畅物联丨视频上云网关获取视频流地址供第三方调用的方法
  • 【论文阅读笔记】IC-Light
  • 电子电器架构 ---什么是智能电动汽车上的逆变器?
  • 极品飞车6的游戏手柄设置
  • 【Leetcode 每日一题 - 扩展】面试题 04.10. 检查子树
  • FreeSWITCH 简单图形化界面38 - 使用uniapp中使用JsSIP进行音视频呼叫
  • Windows11家庭版 Docker Desktop 的安装历程
  • VITUREMEIG | AR眼镜 算力增程
  • 你了解DNS吗?