华清作业day45

头文件:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTime>
#include <QTimer>
#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();

    QString time1, time2;
    QTextToSpeech * speech;
private slots:
    void timeout();
    void on_btn_clicked();

private:
    Ui::Widget *ui;

    QTimer *t;



    int count = 0;
    int id1, id2;
    void timerEvent(QTimerEvent *e);
};
#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);
    //去除多余窗口
    this->setWindowFlag(Qt::FramelessWindowHint);
    this->setAttribute(Qt::WA_TranslucentBackground);

    t = new QTimer(this);

    connect(t,&QTimer::timeout,this,&Widget::timeout);

    speech = new QTextToSpeech(this);


}

Widget::~Widget()
{
    delete ui;
}
//讲述人
void Widget::timeout()
{
//    if(time1 == time2)
//    {
//        speech->say(ui->lab3->text());
//        speech->say(ui->lab3->text());
//        speech->say(ui->lab3->text());
//        speech->say(ui->lab3->text());
//        speech->say(ui->lab3->text());

//    }
}

//系统时间 lab1
void Widget::timerEvent(QTimerEvent *e)
{
    if(e->timerId() == id1)
    {//获取系统时间
        QTime sys_tem = QTime::currentTime();
        //转换类型
        time1 = sys_tem.toString("hh::mm::ss");
        //在lab1上呈现文本
        ui->lab1->setText(time1);
        //居中显示
        ui->lab1->setAlignment(Qt::AlignCenter);

        if(time1 == time2)
        {
            for(int i=0; i<5; i++)
            {
                speech->say(ui->lab3->text());
            }
        }
    }
    //    killTimer(id1);
}
void Widget::on_btn_clicked()
{
    if(ui->btn->text() == "启动")
    {
//        //启动定时器
//        t->start(1000);
        //改变文本
        ui->btn->setText("暂停");

        //绑定闹钟时间
        time2 = ui->lineEdit->text();
    }else{
//        //关闭定时器
//        t->stop();
        killTimer(id1);
        //改变文本
        ui->btn->setText("启动");
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/239567.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity_ET框架项目-斗地主_启动运行流程

unity_ET框架项目-斗地主_启动运行流程 项目源码地址&#xff1a; Viagi/LandlordsCore: ET斗地主Demohttps://github.com/Viagi/LandlordsCore下载项目到本地。 启动运行步骤&#xff1a; 下载目录如下&#xff1a; 1. VS&#xff08;我用是2022版VisualStudio&#xff09…

2023年第十届GIAC全球互联网架构大会-核心PPT资料下载

一、峰会简介 谈到一个应用&#xff0c;我们首先考虑的是运行这个应用所需要的系统资源。其次&#xff0c;是关于应用自身的架构模式。最后&#xff0c;还需要从软件工程的不同角度来考虑应用的设计、开发、部署、运维等。架构设计对应用有着深远的影响&#xff0c;它的好坏决…

Facebook广告投放常见错误

在进行Facebook广告投放时&#xff0c;很容易犯一些常见的错误。这些错误可能导致广告投资的浪费&#xff0c;影响广告效果并降低回报。本文小编讲一些常见的Facebook广告投放错误&#xff0c;以及如何避免它们。 1、不明确目标受众 广告的成功与否很大程度上取决于你选择的目…

Vue 双向绑定:让数据与视图互动的魔法!(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

一天搞定jmeter入门到入职全套教程之Jmeter分布式测试

随着并发量的增大&#xff0c;一台机器就不能满足需求了&#xff0c;所以我们采用分布式&#xff08;Master-Slaver&#xff09;的方案去执行高并发的测试 注意事项&#xff1a; Master机器一般我们不执测试&#xff0c;所以可以拿一台配置差些的机器&#xff0c;主要用来采集…

Apollo配置发布原理解析

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;2022年度博客之星全国TOP3&#xff0c;专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化&#xff0c;文章内容兼具广度、深度、大厂技术方案&#xff0c;对待技术喜欢推理加验证&#xff0c;就职于…

C++ //习题2.5 请写出下列表达式的值。

C程序设计 &#xff08;第三版&#xff09; 谭浩强 习题2.5 习题2.5 请写出下列表达式的值。 (1) 3.5 * 3 2 * 7 - ‘a’ (2) 26 / 3 34 % 3 2.5 (3) 45 / 2 (int)3.14159 / 2 (4) a b (c a 6) 设a的初值为3 (5) a 3 * 5, a b 3 * 2 (6) (int)(a 6.5) % 2 …

波奇学Linux:Linux进程状态,进程优先级

编写一个程序模拟进程 查看进程状态 修改代码后发现进程状态为由S变成R R为运行态&#xff0c;S为阻塞态 第一次为S是因为调用了外设&#xff08;printf调用屏幕外设&#xff09;&#xff0c;实际上应该为R&#xff0c;S状态轮换&#xff0c;但是R太快了&#xff0c;所以每次…

使用docker编排容器

使用Dockerfile构建一个自定义的nginx 首先用docker拉一个nginx镜像 docker pull nginx拉取完成后&#xff0c;编辑一个Dockerfile文件 vim Dockerfile命令如下所示,FROM 后面跟的你的基础镜像&#xff0c;而run则是表示你构建镜像时需要执行的指令&#xff0c;下面的指令意…

python pip 相关缓存清理(windows+linux)

pip会大量缓存&#xff0c;如果全部堆在系统盘&#xff0c;会造成别的无法使用 windows和linux通用 一、linux linux是在命令行操作 1.查看缓存位置 pip cache dir我这里默认是在/root/.cache/pip 2.查看大小 du -sh /root/.cache/pip结果如下&#xff1a; 3.清理&#…

matlab 最小二乘拟合空间直线(方法三)

目录 一、算法原理1、算法过程2、参考文献二、代码实现三、结果展示四、相关链接博客长期更新,GPT与爬虫自重,你也未必能爬到最新版本。 一、算法原理 1、算法过程 空间直线的点向式方程为:

Node.js 事件循环简单介绍

1.简介 Node.js 事件循环是 Node.js 运行时环境中的一个核心机制&#xff0c;用于管理异步操作和回调函数的执行顺序。它基于事件驱动模型&#xff0c;通过事件循环来处理和派发事件&#xff0c;以及执行相应的回调函数。 Node.js 是单进程单线程应用程序&#xff0c;但是因为…

Spring boot注解

1.RestController RestController 注解用于标识一个类,表示该类的所有方法都返回JSON或XML响应&#xff0c;而不是视图页面。它是Controller和ResponseBody的组合 2.RequestMapping RequestMapping 注解用于映射HTTP请求到控制器方法或类。它可以用于类级别和方法级别,用于定…

制造业CRM选型指南:功能、价格与适用性

点击输入图片描述&#xff08;最多30字&#xff09; 在产业升级的大背景下&#xff0c;传统制造业数字化转型迫在眉睫。然而&#xff0c;生产制造业在转型过程中难免遇到难题&#xff0c;这时候就需要CRM客户管理系统的帮助。本文就将为您介绍&#xff0c;什么是制造业CRM&…

BearPi Std 板从入门到放弃 - 先天神魂篇(2)(RT-Thread LED PWM驱动)

简介 基于 BearPi Std 板从入门到放弃 - 先天神魂篇&#xff08;1&#xff09;(RT-Thread 指令点亮LED) 创建的项目, 添加PWM驱动LED的方式实现呼吸灯功能, 电路板及相关使用到的配件说明 开发板 &#xff1a; Bearpi Std(小熊派标准板) 主芯片: STM32L431RCT6 E53_ST1扩展板/…

buuctf-Misc 题目解答分解82-84

82.从娃娃抓起 汉字编码 有两种一种是GB2312 另一种是五笔输入 带数字的是电报码 电报码在线翻译&#xff08;国际摩尔斯电码及中文电码&#xff09; - 千千秀字 解密是人工智能 汉字五笔编码批量查询&#xff1a;86版五笔编码、98版五笔编码、18030版五笔编码&#xff1b;五…

智慧文旅云平台建设方案:PPT全文30页,附下载

关键词&#xff1a;智慧文旅解决方案&#xff0c;智慧文旅建设方案&#xff0c;智慧文旅仓&#xff0c;智慧旅游景区方案&#xff0c;智慧旅游服务平台&#xff0c;智慧旅游技术应用&#xff0c;智慧旅游典型案例 一、智慧文旅云平台建设背景 1、旅游消费升级&#xff1a;随着…

文件搜索项目演示

演示功能搜索功能1&#xff1a;根据文件名搜索2&#xff1a;根据文件路径搜索3&#xff1a;根据文件名拼音(全拼、首拼)搜索 选择更新目录功能自动初始化和定时更新功能程序文件项目知识介绍 演示功能 搜索功能 1&#xff1a;根据文件名搜索 2&#xff1a;根据文件路径搜索 3…

【WebRTC】【Unity】Unity Web RTC1-Unity中简单实现远程画面

【项目资源下载】 本篇配套直接打开可用的项目包地址&#xff0c;欢迎下载&#xff1a; https://download.csdn.net/download/weixin_41697242/88612084 【背景】 想要在Unity中实现实时远程桌面&#xff0c;找到了Render Streaming这个手段&#xff0c;本篇介绍相应的使用方…

Nginx实际问题解决——如何指定地址访问指定页面

Nginx实际问题解决——如何指定地址访问指定页面 问题复现 /var/www/dist/biographicalNotes/下面有一个Html文件 biographicalNotes.html,我实际的nginx代理是这样的 server {listen 8080;server_name localhost;root /var/www/dist;index index.html;location / {try_files…
最新文章