c++作业day4

头文件:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimer>
#include <QTime>
#include <QTextToSpeech>
#include <QMessageBox>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    QTimer* time;//一秒输出一次系统时间
    QTextToSpeech *speecher;//读者
    int id;//启动后1秒判断一次时间是否与系统时间相同
    int id2;//相同后3秒一次读内容,读三次后关闭
    void timerEvent(QTimerEvent *e);
private:
    Ui::Widget *ui;
public slots:
    void time_slots();

private slots:
    void on_okbut_clicked();
    void on_pushButton_clicked();
};
#endif // WIDGET_H

函数: 

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    ,time(new QTimer(this))
    ,speecher(new QTextToSpeech(this))
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    time->start(1000);
    connect(time,&QTimer::timeout,this,&Widget::time_slots);
}

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

void Widget::timerEvent(QTimerEvent *e)
{
    if(e->timerId()==id){
        QTime t=QTime::currentTime();
        QString s=t.toString("hh::mm::ss");
        if(s==ui->lineEdit->text()){
            id2=startTimer(5000);
            speecher->say(ui->label->text());
        }
    }else if(e->timerId()==id2){
        static int count=0;
        if(count++<3){
            speecher->say(ui->label->text());
        }else{
            killTimer(id2);
        }
    }
}

void Widget::time_slots()
{

    QTime t=QTime::currentTime();
    QString s=t.toString("hh::mm::ss");
    ui->timelab->setText("系统时间:"+s);
    ui->timelab->setAlignment(Qt::AlignCenter);

}


void Widget::on_okbut_clicked()
{
    if(ui->okbut->text()=="启动"){
        if(ui->lineEdit->text().size()>7){
            ui->okbut->setText("取消");
            id=startTimer(1000);
        }else{
            QMessageBox::critical(this,"错误","时间输入错误",QMessageBox::Ok);
            ui->lineEdit->clear();
        }
    }else{
        QMessageBox::information(this,"闹钟","闹钟已经取消!",QMessageBox::Ok);
        ui->okbut->setText("启动");
        ui->lineEdit->clear();
        killTimer(id);
        killTimer(id2);
    }
}

void Widget::on_pushButton_clicked()
{
    this->close();
}

 现象:

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

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

相关文章

通过Telnet访问网络设备

要通过 Telnet 访问网络设备&#xff0c;需要通过Console端口对网络设备进行基本配置&#xff0c;例如&#xff0c;IP地址、子网掩码、用户名和登录密码等。本实验以路由器为例&#xff0c;交换机远程管理只是接口名字不同而已&#xff0c;路由器用物理接口&#xff0c;交换机用…

自己写的组件中使用v-model双向绑定

这里的时间选择表单是我写的一个组件&#xff0c;我想用v-model获取到实时的ref值。 代码&#xff1a; //父组件<TimePickerModal v-model:value"time" label-text"计划客面时间" /> const time ref(2024-04-09 15:20:00);//子组件<template>…

虚拟化性能计数器需要至少一个可正常使用的计数器

VMware 虚拟机报错&#xff1a;虚拟化性能计数器需要至少一个可正常使用的计数器。 截图如下&#xff1a; 解决方式参考下图操作即可

飞桨Ai(一)基于训练后的模型进行信息提取

基准 本博客基于如下视频&#xff1a; 发票抬头信息抽取之环境搭建 - 基于飞浆开源项目发票抬头信息抽取之数据标准模型训练 - 基于飞浆开源项目 步骤 1、准备工作 下载python&#xff1a;【Python】Windows&#xff1a;Python 3.9.2 下载和安装&#xff08;建议3.9&#…

蓝桥杯真题 字串简写 前缀和

&#x1f468;‍&#x1f3eb; Acwing 字串简写 输入 4 abababdb a b输出 6&#x1f496; 前缀和 import java.util.Scanner;public class Main {static int N (int) 5e5 10;static int[] l new int[N];// l[i] 表示 i 以及 i 左边包含多少个字符 apublic static void …

CesiumJS内置三维数字地球,你都不知道效果有多炫酷。

CesiumJS是一个开源的JavaScript库&#xff0c;用于在Web浏览器中创建高性能的3D地球和地理空间应用程序。它提供了强大的工具和API&#xff0c;使开发者能够构建具有交互性、可视化和地理空间分析功能的应用。 以下是CesiumJS的一些主要特点和功能&#xff1a; 3D地球可视化&…

基于RF的时间序列预测模型matlab代码

整理了基于RF的时间序列预测模型matlab代码&#xff0c; 包含数据集。采用了四个评价指标R2、MAE、MBE、MAPE对模型.效果优异 训练集数据的R2为&#xff1a;0.99656 测试集数据的R2为&#xff1a;0.94944 训练集数据的MAE为&#xff1a;0.0042509 测试集数据的MAE为&#x…

HarmonyOS 开发-Worker子线程中解压文件

介绍 本示例介绍在Worker 子线程使用ohos.zlib 提供的zlib.decompressfile接口对沙箱目录中的压缩文件进行解压操作&#xff0c;解压成功后将解压路径返回主线程&#xff0c;获取解压文件列表。 效果图预览 使用说明 点击解压按钮&#xff0c;解压test.zip文件&#xff0c;显…

基于Web的农产品销售管理系统

1 课题简介 1.1 选题背景 自宇宙出现盘古开天依赖&#xff0c;万事万物就在不断的进步更新淘汰弱者&#xff0c;现在到了如今人们进入了互联网上帝世纪&#xff0c;越来越多的事物和工作都可以在网上用数据流代替和执行&#xff0c;不必再像以前一样亲自出面和出门做事&#…

第9章 文件和内容管理

思维导图 9.1 引言 文件和内容管理是指针对存储在关系型数据库之外的数据和信息的采集、存储、访问和使用过程的管理。它的重点在于保持文件和其他非结构化或半结构化信息的完整性&#xff0c;并使这些信息能够被访问。文件和非结构化内容也应是安全且高质量的。 确保文件和内容…

0基础入门Playwright框架,赶紧上车!

自从2023年底playwright框架火起来之后&#xff0c;很多小伙伴都会来咨询我们这个框架相关内容&#xff0c;甚至问我们什么时候出这个课程。 这不&#xff0c;新课程终于在大家的千呼万唤中出来啦&#xff01;具体的课程大纲和试听视频&#xff01; Web自动化测试项目实战(Pyte…

【JavaWeb】JSP实现数据传递与保存

目录 JSP内置对象requestrequest对象的常用方法get与post区别 问题解决表单提交时中文乱码的问题 responseresponse对象的常用方法 思考请求的转发示例 转发与重定向的区别会话session对象常用方法session与窗口的关系示例&#xff1a;使用session实现访问控制 思考小结思考JSP…

AI大模型日报#0409:Llama 3下周发布、特斯联20亿融资、Karpathy新项目

导读&#xff1a; 欢迎阅读《AI大模型日报》&#xff0c;内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。标题: 120亿Stable LM 2上线即开源&#xff01;2万亿token训练&#xff0c;碾压Llama 2 70B 摘要: Stable LM 2 12B参数版本发布&#x…

第一次在Vue里使用Swiper插件轮播先看这里,报错!!!(不同swiper在页面引入时方式不同,步步扫雷ing)

现在用新插件前有了个概念&#xff0c;一定要看它官方文档&#xff0c;因为不你项目版本与你想用的插件版本间是有规定的&#xff0c;不应该直接看别人已经实现就跟着哐哐下载然后不停报错。。。 比如Swiper版本问题的大小写问题&#xff1a; 3.x 版本的 ---- 引入模块时使用小…

爬虫 selenium

爬虫 selenium 【一】介绍 【1】说明 Selenium是一款广泛应用于Web应用程序测试的自动化测试框架 它可以模拟用户再浏览器上的行为对Web应用进行自动化测试 主要作用&#xff1a; 浏览器控制&#xff1a;启动、切换、关闭不同浏览器元素定位于操作&#xff1a;通过CSS选择器…

C++笔记(函数重载)

目录 引入&#xff1a; 定义&#xff1a; 易错案例&#xff1a; 引入&#xff1a; 对于实现相似功能的函数&#xff0c;在命名时&#xff0c;我们常会出现命名重复的问题。对于C语言&#xff0c;编译器遇到这种命名重复的情况&#xff0c;会进行报错。而我们的C为了更方便程…

mineadmin 设置时区

由于不同环境下&#xff0c;会造成时区不一致问题 在/bin/hyperf.php 文件里&#xff0c;设置 date_default_timezone_set(Asia/Shanghai);

【AIGC】训练数据入库(Milvus)

之前的文章有写如何获取数据、如何补充数据&#xff0c;也有说如何对数据进行清洗、如何使用结构化数据进行训练。但好像没有说如何将训练数据“入库”。这里说的入库不是指 MySQL 数据库&#xff0c;而是指向量检索库 Milvus。 众所周知&#xff0c;人工智能多用向量数据进行…

Kubernetes(k8s)监控与报警(qq邮箱+钉钉):Prometheus + Grafana + Alertmanager(超详细)

Kubernetes&#xff08;k8s&#xff09;监控与报警&#xff08;qq邮箱钉钉&#xff09;&#xff1a;Prometheus Grafana Alertmanager&#xff08;超详细&#xff09; 1、部署环境2、基本概念简介2.1、Prometheus简介2.2、Grafana简介2.3、Alertmanager简介2.4、Prometheus …

【leetcode】动态规划::前缀和(二)

标题&#xff1a;【leetcode】前缀和&#xff08;二&#xff09; 水墨不写bug 正文开始&#xff1a; &#xff08;一&#xff09; 和为K的子数组 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续…